<!DOCTYPE html>
<html>
<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
		<title></title>
		<script>
			var Vue = function(e) {
				"use strict";

				function t(e, t) {
					const n = Object.create(null),
						o = e.split(",");
					for (let r = 0; r < o.length; r++) n[o[r]] = !0;
					return t ? e => !!n[e.toLowerCase()] : e => !!n[e]
				}
				const n = t(
					"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt"
				);

				function o(e) {
					if (E(e)) {
						const t = {};
						for (let n = 0; n < e.length; n++) {
							const r = e[n],
								s = R(r) ? l(r) : o(r);
							if (s)
								for (const e in s) t[e] = s[e]
						}
						return t
					}
					return R(e) || M(e) ? e : void 0
				}
				const r = /;(?![^(]*\))/g,
					s = /:([^]+)/,
					i = /\/\*.*?\*\//gs;

				function l(e) {
					const t = {};
					return e.replace(i, "").split(r).forEach((e => {
						if (e) {
							const n = e.split(s);
							n.length > 1 && (t[n[0].trim()] = n[1].trim())
						}
					})), t
				}

				function c(e) {
					let t = "";
					if (R(e)) t = e;
					else if (E(e))
						for (let n = 0; n < e.length; n++) {
							const o = c(e[n]);
							o && (t += o + " ")
						} else if (M(e))
							for (const n in e) e[n] && (t += n + " ");
					return t.trim()
				}
				const a = t(
						"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"
					),
					u = t(
						"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"
					),
					p = t("area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"),
					f = t("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");

				function d(e) {
					return !!e || "" === e
				}

				function h(e, t) {
					if (e === t) return !0;
					let n = F(e),
						o = F(t);
					if (n || o) return !(!n || !o) && e.getTime() === t.getTime();
					if (n = $(e), o = $(t), n || o) return e === t;
					if (n = E(e), o = E(t), n || o) return !(!n || !o) && function(e, t) {
						if (e.length !== t.length) return !1;
						let n = !0;
						for (let o = 0; n && o < e.length; o++) n = h(e[o], t[o]);
						return n
					}(e, t);
					if (n = M(e), o = M(t), n || o) {
						if (!n || !o) return !1;
						if (Object.keys(e).length !== Object.keys(t).length) return !1;
						for (const n in e) {
							const o = e.hasOwnProperty(n),
								r = t.hasOwnProperty(n);
							if (o && !r || !o && r || !h(e[n], t[n])) return !1
						}
					}
					return String(e) === String(t)
				}

				function m(e, t) {
					return e.findIndex((e => h(e, t)))
				}
				const g = (e, t) => t && t.__v_isRef ? g(e, t.value) : O(t) ? {
						[`Map(${t.size})`]: [...t.entries()].reduce(((e, [t, n]) => (e[`${t} =>`] = n, e)), {})
					} : A(t) ? {
						[`Set(${t.size})`]: [...t.values()]
					} : !M(t) || E(t) || L(t) ? t : String(t),
					v = {},
					y = [],
					_ = () => {},
					b = () => !1,
					S = /^on[^a-z]/,
					x = e => S.test(e),
					C = e => e.startsWith("onUpdate:"),
					k = Object.assign,
					w = (e, t) => {
						const n = e.indexOf(t);
						n > -1 && e.splice(n, 1)
					},
					T = Object.prototype.hasOwnProperty,
					N = (e, t) => T.call(e, t),
					E = Array.isArray,
					O = e => "[object Map]" === B(e),
					A = e => "[object Set]" === B(e),
					F = e => "[object Date]" === B(e),
					P = e => "function" == typeof e,
					R = e => "string" == typeof e,
					$ = e => "symbol" == typeof e,
					M = e => null !== e && "object" == typeof e,
					V = e => M(e) && P(e.then) && P(e.catch),
					I = Object.prototype.toString,
					B = e => I.call(e),
					L = e => "[object Object]" === B(e),
					j = e => R(e) && "NaN" !== e && "-" !== e[0] && "" + parseInt(e, 10) === e,
					U = t(
						",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"
					),
					D = t("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),
					H = e => {
						const t = Object.create(null);
						return n => t[n] || (t[n] = e(n))
					},
					W = /-(\w)/g,
					z = H((e => e.replace(W, ((e, t) => t ? t.toUpperCase() : "")))),
					K = /\B([A-Z])/g,
					G = H((e => e.replace(K, "-$1").toLowerCase())),
					q = H((e => e.charAt(0).toUpperCase() + e.slice(1))),
					J = H((e => e ? `on${q(e)}` : "")),
					Z = (e, t) => !Object.is(e, t),
					Y = (e, t) => {
						for (let n = 0; n < e.length; n++) e[n](t)
					},
					Q = (e, t, n) => {
						Object.defineProperty(e, t, {
							configurable: !0,
							enumerable: !1,
							value: n
						})
					},
					X = e => {
						const t = parseFloat(e);
						return isNaN(t) ? e : t
					},
					ee = e => {
						const t = R(e) ? Number(e) : NaN;
						return isNaN(t) ? e : t
					};
				let te;
				let ne;
				class oe {
					constructor(e = !1) {
						this.detached = e, this._active = !0, this.effects = [], this.cleanups = [], this.parent = ne, !
							e && ne && (this.index = (ne.scopes || (ne.scopes = [])).push(this) - 1)
					}
					get active() {
						return this._active
					}
					run(e) {
						if (this._active) {
							const t = ne;
							try {
								return ne = this, e()
							} finally {
								ne = t
							}
						}
					}
					on() {
						ne = this
					}
					off() {
						ne = this.parent
					}
					stop(e) {
						if (this._active) {
							let t, n;
							for (t = 0, n = this.effects.length; t < n; t++) this.effects[t].stop();
							for (t = 0, n = this.cleanups.length; t < n; t++) this.cleanups[t]();
							if (this.scopes)
								for (t = 0, n = this.scopes.length; t < n; t++) this.scopes[t].stop(!0);
							if (!this.detached && this.parent && !e) {
								const e = this.parent.scopes.pop();
								e && e !== this && (this.parent.scopes[this.index] = e, e.index = this.index)
							}
							this.parent = void 0, this._active = !1
						}
					}
				}

				function re(e, t = ne) {
					t && t.active && t.effects.push(e)
				}

				function se() {
					return ne
				}
				const ie = e => {
						const t = new Set(e);
						return t.w = 0, t.n = 0, t
					},
					le = e => (e.w & pe) > 0,
					ce = e => (e.n & pe) > 0,
					ae = new WeakMap;
				let ue = 0,
					pe = 1;
				let fe;
				const de = Symbol(""),
					he = Symbol("");
				class me {
					constructor(e, t = null, n) {
						this.fn = e, this.scheduler = t, this.active = !0, this.deps = [], this.parent = void 0, re(this,
							n)
					}
					run() {
						if (!this.active) return this.fn();
						let e = fe,
							t = ve;
						for (; e;) {
							if (e === this) return;
							e = e.parent
						}
						try {
							return this.parent = fe, fe = this, ve = !0, pe = 1 << ++ue, ue <= 30 ? (({
								deps: e
							}) => {
								if (e.length)
									for (let t = 0; t < e.length; t++) e[t].w |= pe
							})(this) : ge(this), this.fn()
						} finally {
							ue <= 30 && (e => {
									const {
										deps: t
									} = e;
									if (t.length) {
										let n = 0;
										for (let o = 0; o < t.length; o++) {
											const r = t[o];
											le(r) && !ce(r) ? r.delete(e) : t[n++] = r, r.w &= ~pe, r.n &= ~pe
										}
										t.length = n
									}
								})(this), pe = 1 << --ue, fe = this.parent, ve = t, this.parent = void 0, this
								.deferStop && this.stop()
						}
					}
					stop() {
						fe === this ? this.deferStop = !0 : this.active && (ge(this), this.onStop && this.onStop(), this
							.active = !1)
					}
				}

				function ge(e) {
					const {
						deps: t
					} = e;
					if (t.length) {
						for (let n = 0; n < t.length; n++) t[n].delete(e);
						t.length = 0
					}
				}
				let ve = !0;
				const ye = [];

				function _e() {
					ye.push(ve), ve = !1
				}

				function be() {
					const e = ye.pop();
					ve = void 0 === e || e
				}

				function Se(e, t, n) {
					if (ve && fe) {
						let t = ae.get(e);
						t || ae.set(e, t = new Map);
						let o = t.get(n);
						o || t.set(n, o = ie()), xe(o)
					}
				}

				function xe(e, t) {
					let n = !1;
					ue <= 30 ? ce(e) || (e.n |= pe, n = !le(e)) : n = !e.has(fe), n && (e.add(fe), fe.deps.push(e))
				}

				function Ce(e, t, n, o, r, s) {
					const i = ae.get(e);
					if (!i) return;
					let l = [];
					if ("clear" === t) l = [...i.values()];
					else if ("length" === n && E(e)) {
						const e = Number(o);
						i.forEach(((t, n) => {
							("length" === n || n >= e) && l.push(t)
						}))
					} else switch (void 0 !== n && l.push(i.get(n)), t) {
						case "add":
							E(e) ? j(n) && l.push(i.get("length")) : (l.push(i.get(de)), O(e) && l.push(i.get(he)));
							break;
						case "delete":
							E(e) || (l.push(i.get(de)), O(e) && l.push(i.get(he)));
							break;
						case "set":
							O(e) && l.push(i.get(de))
					}
					if (1 === l.length) l[0] && ke(l[0]);
					else {
						const e = [];
						for (const t of l) t && e.push(...t);
						ke(ie(e))
					}
				}

				function ke(e, t) {
					const n = E(e) ? e : [...e];
					for (const o of n) o.computed && we(o);
					for (const o of n) o.computed || we(o)
				}

				function we(e, t) {
					(e !== fe || e.allowRecurse) && (e.scheduler ? e.scheduler() : e.run())
				}
				const Te = t("__proto__,__v_isRef,__isVue"),
					Ne = new Set(Object.getOwnPropertyNames(Symbol).filter((e => "arguments" !== e && "caller" !== e)).map((
						e => Symbol[e])).filter($)),
					Ee = Me(),
					Oe = Me(!1, !0),
					Ae = Me(!0),
					Fe = Me(!0, !0),
					Pe = Re();

				function Re() {
					const e = {};
					return ["includes", "indexOf", "lastIndexOf"].forEach((t => {
						e[t] = function(...e) {
							const n = xt(this);
							for (let t = 0, r = this.length; t < r; t++) Se(n, 0, t + "");
							const o = n[t](...e);
							return -1 === o || !1 === o ? n[t](...e.map(xt)) : o
						}
					})), ["push", "pop", "shift", "unshift", "splice"].forEach((t => {
						e[t] = function(...e) {
							_e();
							const n = xt(this)[t].apply(this, e);
							return be(), n
						}
					})), e
				}

				function $e(e) {
					const t = xt(this);
					return Se(t, 0, e), t.hasOwnProperty(e)
				}

				function Me(e = !1, t = !1) {
					return function(n, o, r) {
						if ("__v_isReactive" === o) return !e;
						if ("__v_isReadonly" === o) return e;
						if ("__v_isShallow" === o) return t;
						if ("__v_raw" === o && r === (e ? t ? ft : pt : t ? ut : at).get(n)) return n;
						const s = E(n);
						if (!e) {
							if (s && N(Pe, o)) return Reflect.get(Pe, o, r);
							if ("hasOwnProperty" === o) return $e
						}
						const i = Reflect.get(n, o, r);
						return ($(o) ? Ne.has(o) : Te(o)) ? i : (e || Se(n, 0, o), t ? i : Et(i) ? s && j(o) ? i : i
							.value : M(i) ? e ? gt(i) : ht(i) : i)
					}
				}

				function Ve(e = !1) {
					return function(t, n, o, r) {
						let s = t[n];
						if (_t(s) && Et(s) && !Et(o)) return !1;
						if (!e && (bt(o) || _t(o) || (s = xt(s), o = xt(o)), !E(t) && Et(s) && !Et(o))) return s.value =
							o, !0;
						const i = E(t) && j(n) ? Number(n) < t.length : N(t, n),
							l = Reflect.set(t, n, o, r);
						return t === xt(r) && (i ? Z(o, s) && Ce(t, "set", n, o) : Ce(t, "add", n, o)), l
					}
				}
				const Ie = {
						get: Ee,
						set: Ve(),
						deleteProperty: function(e, t) {
							const n = N(e, t),
								o = Reflect.deleteProperty(e, t);
							return o && n && Ce(e, "delete", t, void 0), o
						},
						has: function(e, t) {
							const n = Reflect.has(e, t);
							return $(t) && Ne.has(t) || Se(e, 0, t), n
						},
						ownKeys: function(e) {
							return Se(e, 0, E(e) ? "length" : de), Reflect.ownKeys(e)
						}
					},
					Be = {
						get: Ae,
						set: (e, t) => !0,
						deleteProperty: (e, t) => !0
					},
					Le = k({}, Ie, {
						get: Oe,
						set: Ve(!0)
					}),
					je = k({}, Be, {
						get: Fe
					}),
					Ue = e => e,
					De = e => Reflect.getPrototypeOf(e);

				function He(e, t, n = !1, o = !1) {
					const r = xt(e = e.__v_raw),
						s = xt(t);
					n || (t !== s && Se(r, 0, t), Se(r, 0, s));
					const {
						has: i
					} = De(r), l = o ? Ue : n ? wt : kt;
					return i.call(r, t) ? l(e.get(t)) : i.call(r, s) ? l(e.get(s)) : void(e !== r && e.get(t))
				}

				function We(e, t = !1) {
					const n = this.__v_raw,
						o = xt(n),
						r = xt(e);
					return t || (e !== r && Se(o, 0, e), Se(o, 0, r)), e === r ? n.has(e) : n.has(e) || n.has(r)
				}

				function ze(e, t = !1) {
					return e = e.__v_raw, !t && Se(xt(e), 0, de), Reflect.get(e, "size", e)
				}

				function Ke(e) {
					e = xt(e);
					const t = xt(this);
					return De(t).has.call(t, e) || (t.add(e), Ce(t, "add", e, e)), this
				}

				function Ge(e, t) {
					t = xt(t);
					const n = xt(this),
						{
							has: o,
							get: r
						} = De(n);
					let s = o.call(n, e);
					s || (e = xt(e), s = o.call(n, e));
					const i = r.call(n, e);
					return n.set(e, t), s ? Z(t, i) && Ce(n, "set", e, t) : Ce(n, "add", e, t), this
				}

				function qe(e) {
					const t = xt(this),
						{
							has: n,
							get: o
						} = De(t);
					let r = n.call(t, e);
					r || (e = xt(e), r = n.call(t, e)), o && o.call(t, e);
					const s = t.delete(e);
					return r && Ce(t, "delete", e, void 0), s
				}

				function Je() {
					const e = xt(this),
						t = 0 !== e.size,
						n = e.clear();
					return t && Ce(e, "clear", void 0, void 0), n
				}

				function Ze(e, t) {
					return function(n, o) {
						const r = this,
							s = r.__v_raw,
							i = xt(s),
							l = t ? Ue : e ? wt : kt;
						return !e && Se(i, 0, de), s.forEach(((e, t) => n.call(o, l(e), l(t), r)))
					}
				}

				function Ye(e, t, n) {
					return function(...o) {
						const r = this.__v_raw,
							s = xt(r),
							i = O(s),
							l = "entries" === e || e === Symbol.iterator && i,
							c = "keys" === e && i,
							a = r[e](...o),
							u = n ? Ue : t ? wt : kt;
						return !t && Se(s, 0, c ? he : de), {
							next() {
								const {
									value: e,
									done: t
								} = a.next();
								return t ? {
									value: e,
									done: t
								} : {
									value: l ? [u(e[0]), u(e[1])] : u(e),
									done: t
								}
							},
							[Symbol.iterator]() {
								return this
							}
						}
					}
				}

				function Qe(e) {
					return function(...t) {
						return "delete" !== e && this
					}
				}

				function Xe() {
					const e = {
							get(e) {
								return He(this, e)
							},
							get size() {
								return ze(this)
							},
							has: We,
							add: Ke,
							set: Ge,
							delete: qe,
							clear: Je,
							forEach: Ze(!1, !1)
						},
						t = {
							get(e) {
								return He(this, e, !1, !0)
							},
							get size() {
								return ze(this)
							},
							has: We,
							add: Ke,
							set: Ge,
							delete: qe,
							clear: Je,
							forEach: Ze(!1, !0)
						},
						n = {
							get(e) {
								return He(this, e, !0)
							},
							get size() {
								return ze(this, !0)
							},
							has(e) {
								return We.call(this, e, !0)
							},
							add: Qe("add"),
							set: Qe("set"),
							delete: Qe("delete"),
							clear: Qe("clear"),
							forEach: Ze(!0, !1)
						},
						o = {
							get(e) {
								return He(this, e, !0, !0)
							},
							get size() {
								return ze(this, !0)
							},
							has(e) {
								return We.call(this, e, !0)
							},
							add: Qe("add"),
							set: Qe("set"),
							delete: Qe("delete"),
							clear: Qe("clear"),
							forEach: Ze(!0, !0)
						};
					return ["keys", "values", "entries", Symbol.iterator].forEach((r => {
						e[r] = Ye(r, !1, !1), n[r] = Ye(r, !0, !1), t[r] = Ye(r, !1, !0), o[r] = Ye(r, !0, !0)
					})), [e, n, t, o]
				}
				const [et, tt, nt, ot] = Xe();

				function rt(e, t) {
					const n = t ? e ? ot : nt : e ? tt : et;
					return (t, o, r) => "__v_isReactive" === o ? !e : "__v_isReadonly" === o ? e : "__v_raw" === o ? t :
						Reflect.get(N(n, o) && o in t ? n : t, o, r)
				}
				const st = {
						get: rt(!1, !1)
					},
					it = {
						get: rt(!1, !0)
					},
					lt = {
						get: rt(!0, !1)
					},
					ct = {
						get: rt(!0, !0)
					},
					at = new WeakMap,
					ut = new WeakMap,
					pt = new WeakMap,
					ft = new WeakMap;

				function dt(e) {
					return e.__v_skip || !Object.isExtensible(e) ? 0 : function(e) {
						switch (e) {
							case "Object":
							case "Array":
								return 1;
							case "Map":
							case "Set":
							case "WeakMap":
							case "WeakSet":
								return 2;
							default:
								return 0
						}
					}((e => B(e).slice(8, -1))(e))
				}

				function ht(e) {
					return _t(e) ? e : vt(e, !1, Ie, st, at)
				}

				function mt(e) {
					return vt(e, !1, Le, it, ut)
				}

				function gt(e) {
					return vt(e, !0, Be, lt, pt)
				}

				function vt(e, t, n, o, r) {
					if (!M(e)) return e;
					if (e.__v_raw && (!t || !e.__v_isReactive)) return e;
					const s = r.get(e);
					if (s) return s;
					const i = dt(e);
					if (0 === i) return e;
					const l = new Proxy(e, 2 === i ? o : n);
					return r.set(e, l), l
				}

				function yt(e) {
					return _t(e) ? yt(e.__v_raw) : !(!e || !e.__v_isReactive)
				}

				function _t(e) {
					return !(!e || !e.__v_isReadonly)
				}

				function bt(e) {
					return !(!e || !e.__v_isShallow)
				}

				function St(e) {
					return yt(e) || _t(e)
				}

				function xt(e) {
					const t = e && e.__v_raw;
					return t ? xt(t) : e
				}

				function Ct(e) {
					return Q(e, "__v_skip", !0), e
				}
				const kt = e => M(e) ? ht(e) : e,
					wt = e => M(e) ? gt(e) : e;

				function Tt(e) {
					ve && fe && xe((e = xt(e)).dep || (e.dep = ie()))
				}

				function Nt(e, t) {
					const n = (e = xt(e)).dep;
					n && ke(n)
				}

				function Et(e) {
					return !(!e || !0 !== e.__v_isRef)
				}

				function Ot(e) {
					return At(e, !1)
				}

				function At(e, t) {
					return Et(e) ? e : new Ft(e, t)
				}
				class Ft {
					constructor(e, t) {
						this.__v_isShallow = t, this.dep = void 0, this.__v_isRef = !0, this._rawValue = t ? e : xt(e),
							this._value = t ? e : kt(e)
					}
					get value() {
						return Tt(this), this._value
					}
					set value(e) {
						const t = this.__v_isShallow || bt(e) || _t(e);
						e = t ? e : xt(e), Z(e, this._rawValue) && (this._rawValue = e, this._value = t ? e : kt(e), Nt(
							this))
					}
				}

				function Pt(e) {
					return Et(e) ? e.value : e
				}
				const Rt = {
					get: (e, t, n) => Pt(Reflect.get(e, t, n)),
					set: (e, t, n, o) => {
						const r = e[t];
						return Et(r) && !Et(n) ? (r.value = n, !0) : Reflect.set(e, t, n, o)
					}
				};

				function $t(e) {
					return yt(e) ? e : new Proxy(e, Rt)
				}
				class Mt {
					constructor(e) {
						this.dep = void 0, this.__v_isRef = !0;
						const {
							get: t,
							set: n
						} = e((() => Tt(this)), (() => Nt(this)));
						this._get = t, this._set = n
					}
					get value() {
						return this._get()
					}
					set value(e) {
						this._set(e)
					}
				}
				class Vt {
					constructor(e, t, n) {
						this._object = e, this._key = t, this._defaultValue = n, this.__v_isRef = !0
					}
					get value() {
						const e = this._object[this._key];
						return void 0 === e ? this._defaultValue : e
					}
					set value(e) {
						this._object[this._key] = e
					}
					get dep() {
						return function(e, t) {
							var n;
							return null === (n = ae.get(e)) || void 0 === n ? void 0 : n.get(t)
						}(xt(this._object), this._key)
					}
				}

				function It(e, t, n) {
					const o = e[t];
					return Et(o) ? o : new Vt(e, t, n)
				}
				var Bt;
				class Lt {
					constructor(e, t, n, o) {
						this._setter = t, this.dep = void 0, this.__v_isRef = !0, this[Bt] = !1, this._dirty = !0, this
							.effect = new me(e, (() => {
								this._dirty || (this._dirty = !0, Nt(this))
							})), this.effect.computed = this, this.effect.active = this._cacheable = !o, this
							.__v_isReadonly = n
					}
					get value() {
						const e = xt(this);
						return Tt(e), !e._dirty && e._cacheable || (e._dirty = !1, e._value = e.effect.run()), e._value
					}
					set value(e) {
						this._setter(e)
					}
				}

				function jt(e, t, n, o) {
					let r;
					try {
						r = o ? e(...o) : e()
					} catch (s) {
						Dt(s, t, n)
					}
					return r
				}

				function Ut(e, t, n, o) {
					if (P(e)) {
						const r = jt(e, t, n, o);
						return r && V(r) && r.catch((e => {
							Dt(e, t, n)
						})), r
					}
					const r = [];
					for (let s = 0; s < e.length; s++) r.push(Ut(e[s], t, n, o));
					return r
				}

				function Dt(e, t, n, o = !0) {
					if (t) {
						let o = t.parent;
						const r = t.proxy,
							s = n;
						for (; o;) {
							const t = o.ec;
							if (t)
								for (let n = 0; n < t.length; n++)
									if (!1 === t[n](e, r, s)) return;
							o = o.parent
						}
						const i = t.appContext.config.errorHandler;
						if (i) return void jt(i, null, 10, [e, r, s])
					}! function(e, t, n, o = !0) {
						console.error(e)
					}(e, 0, 0, o)
				}
				Bt = "__v_isReadonly";
				let Ht = !1,
					Wt = !1;
				const zt = [];
				let Kt = 0;
				const Gt = [];
				let qt = null,
					Jt = 0;
				const Zt = Promise.resolve();
				let Yt = null;

				function Qt(e) {
					const t = Yt || Zt;
					return e ? t.then(this ? e.bind(this) : e) : t
				}

				function Xt(e) {
					zt.length && zt.includes(e, Ht && e.allowRecurse ? Kt + 1 : Kt) || (null == e.id ? zt.push(e) : zt
						.splice(function(e) {
							let t = Kt + 1,
								n = zt.length;
							for (; t < n;) {
								const o = t + n >>> 1;
								rn(zt[o]) < e ? t = o + 1 : n = o
							}
							return t
						}(e.id), 0, e), en())
				}

				function en() {
					Ht || Wt || (Wt = !0, Yt = Zt.then(ln))
				}

				function tn(e) {
					E(e) ? Gt.push(...e) : qt && qt.includes(e, e.allowRecurse ? Jt + 1 : Jt) || Gt.push(e), en()
				}

				function nn(e, t = (Ht ? Kt + 1 : 0)) {
					for (; t < zt.length; t++) {
						const e = zt[t];
						e && e.pre && (zt.splice(t, 1), t--, e())
					}
				}

				function on(e) {
					if (Gt.length) {
						const e = [...new Set(Gt)];
						if (Gt.length = 0, qt) return void qt.push(...e);
						for (qt = e, qt.sort(((e, t) => rn(e) - rn(t))), Jt = 0; Jt < qt.length; Jt++) qt[Jt]();
						qt = null, Jt = 0
					}
				}
				const rn = e => null == e.id ? 1 / 0 : e.id,
					sn = (e, t) => {
						const n = rn(e) - rn(t);
						if (0 === n) {
							if (e.pre && !t.pre) return -1;
							if (t.pre && !e.pre) return 1
						}
						return n
					};

				function ln(e) {
					Wt = !1, Ht = !0, zt.sort(sn);
					try {
						for (Kt = 0; Kt < zt.length; Kt++) {
							const e = zt[Kt];
							e && !1 !== e.active && jt(e, null, 14)
						}
					} finally {
						Kt = 0, zt.length = 0, on(), Ht = !1, Yt = null, (zt.length || Gt.length) && ln()
					}
				}
				e.devtools = void 0;
				let cn = [];

				function an(e, t, ...n) {
					if (e.isUnmounted) return;
					const o = e.vnode.props || v;
					let r = n;
					const s = t.startsWith("update:"),
						i = s && t.slice(7);
					if (i && i in o) {
						const e = `${"modelValue"===i?"model":i}Modifiers`,
							{
								number: t,
								trim: s
							} = o[e] || v;
						s && (r = n.map((e => R(e) ? e.trim() : e))), t && (r = n.map(X))
					}
					let l, c = o[l = J(t)] || o[l = J(z(t))];
					!c && s && (c = o[l = J(G(t))]), c && Ut(c, e, 6, r);
					const a = o[l + "Once"];
					if (a) {
						if (e.emitted) {
							if (e.emitted[l]) return
						} else e.emitted = {};
						e.emitted[l] = !0, Ut(a, e, 6, r)
					}
				}

				function un(e, t, n = !1) {
					const o = t.emitsCache,
						r = o.get(e);
					if (void 0 !== r) return r;
					const s = e.emits;
					let i = {},
						l = !1;
					if (!P(e)) {
						const o = e => {
							const n = un(e, t, !0);
							n && (l = !0, k(i, n))
						};
						!n && t.mixins.length && t.mixins.forEach(o), e.extends && o(e.extends), e.mixins && e.mixins
							.forEach(o)
					}
					return s || l ? (E(s) ? s.forEach((e => i[e] = null)) : k(i, s), M(e) && o.set(e, i), i) : (M(e) && o
						.set(e, null), null)
				}

				function pn(e, t) {
					return !(!e || !x(t)) && (t = t.slice(2).replace(/Once$/, ""), N(e, t[0].toLowerCase() + t.slice(1)) ||
						N(e, G(t)) || N(e, t))
				}
				let fn = null,
					dn = null;

				function hn(e) {
					const t = fn;
					return fn = e, dn = e && e.type.__scopeId || null, t
				}

				function mn(e, t = fn, n) {
					if (!t) return e;
					if (e._n) return e;
					const o = (...n) => {
						o._d && Tr(-1);
						const r = hn(t);
						let s;
						try {
							s = e(...n)
						} finally {
							hn(r), o._d && Tr(1)
						}
						return s
					};
					return o._n = !0, o._c = !0, o._d = !0, o
				}

				function gn(e) {
					const {
						type: t,
						vnode: n,
						proxy: o,
						withProxy: r,
						props: s,
						propsOptions: [i],
						slots: l,
						attrs: c,
						emit: a,
						render: u,
						renderCache: p,
						data: f,
						setupState: d,
						ctx: h,
						inheritAttrs: m
					} = e;
					let g, v;
					const y = hn(e);
					try {
						if (4 & n.shapeFlag) {
							const e = r || o;
							g = Lr(u.call(e, e, p, s, d, f, h)), v = c
						} else {
							const e = t;
							0, g = Lr(e(s, e.length > 1 ? {
								attrs: c,
								slots: l,
								emit: a
							} : null)), v = t.props ? c : vn(c)
						}
					} catch (b) {
						Sr.length = 0, Dt(b, e, 1), g = Mr(_r)
					}
					let _ = g;
					if (v && !1 !== m) {
						const e = Object.keys(v),
							{
								shapeFlag: t
							} = _;
						e.length && 7 & t && (i && e.some(C) && (v = yn(v, i)), _ = Ir(_, v))
					}
					return n.dirs && (_ = Ir(_), _.dirs = _.dirs ? _.dirs.concat(n.dirs) : n.dirs), n.transition && (_
						.transition = n.transition), g = _, hn(y), g
				}
				const vn = e => {
						let t;
						for (const n in e)("class" === n || "style" === n || x(n)) && ((t || (t = {}))[n] = e[n]);
						return t
					},
					yn = (e, t) => {
						const n = {};
						for (const o in e) C(o) && o.slice(9) in t || (n[o] = e[o]);
						return n
					};

				function _n(e, t, n) {
					const o = Object.keys(t);
					if (o.length !== Object.keys(e).length) return !0;
					for (let r = 0; r < o.length; r++) {
						const s = o[r];
						if (t[s] !== e[s] && !pn(n, s)) return !0
					}
					return !1
				}

				function bn({
					vnode: e,
					parent: t
				}, n) {
					for (; t && t.subTree === e;)(e = t.vnode).el = n, t = t.parent
				}
				const Sn = e => e.__isSuspense,
					xn = {
						name: "Suspense",
						__isSuspense: !0,
						process(e, t, n, o, r, s, i, l, c, a) {
							null == e ? function(e, t, n, o, r, s, i, l, c) {
								const {
									p: a,
									o: {
										createElement: u
									}
								} = c, p = u("div"), f = e.suspense = kn(e, r, o, t, p, n, s, i, l, c);
								a(null, f.pendingBranch = e.ssContent, p, null, o, f, s, i), f.deps > 0 ? (Cn(e,
									"onPending"), Cn(e, "onFallback"), a(null, e.ssFallback, t, n, o, null, s,
									i), Nn(f, e.ssFallback)) : f.resolve()
							}(t, n, o, r, s, i, l, c, a) : function(e, t, n, o, r, s, i, l, {
								p: c,
								um: a,
								o: {
									createElement: u
								}
							}) {
								const p = t.suspense = e.suspense;
								p.vnode = t, t.el = e.el;
								const f = t.ssContent,
									d = t.ssFallback,
									{
										activeBranch: h,
										pendingBranch: m,
										isInFallback: g,
										isHydrating: v
									} = p;
								if (m) p.pendingBranch = f, Ar(f, m) ? (c(m, f, p.hiddenContainer, null, r, p, s, i, l),
									p.deps <= 0 ? p.resolve() : g && (c(h, d, n, o, r, null, s, i, l), Nn(p, d))) : (
									p.pendingId++, v ? (p.isHydrating = !1, p.activeBranch = m) : a(m, r, p), p
									.deps = 0, p.effects.length = 0, p.hiddenContainer = u("div"), g ? (c(null, f, p
										.hiddenContainer, null, r, p, s, i, l), p.deps <= 0 ? p.resolve() : (c(h,
										d, n, o, r, null, s, i, l), Nn(p, d))) : h && Ar(f, h) ? (c(h, f, n, o, r, p,
										s, i, l), p.resolve(!0)) : (c(null, f, p.hiddenContainer, null, r, p, s, i,
										l), p.deps <= 0 && p.resolve()));
								else if (h && Ar(f, h)) c(h, f, n, o, r, p, s, i, l), Nn(p, f);
								else if (Cn(t, "onPending"), p.pendingBranch = f, p.pendingId++, c(null, f, p
										.hiddenContainer, null, r, p, s, i, l), p.deps <= 0) p.resolve();
								else {
									const {
										timeout: e,
										pendingId: t
									} = p;
									e > 0 ? setTimeout((() => {
										p.pendingId === t && p.fallback(d)
									}), e) : 0 === e && p.fallback(d)
								}
							}(e, t, n, o, r, i, l, c, a)
						},
						hydrate: function(e, t, n, o, r, s, i, l, c) {
							const a = t.suspense = kn(t, o, n, e.parentNode, document.createElement("div"), null, r, s,
									i, l, !0),
								u = c(e, a.pendingBranch = t.ssContent, n, a, s, i);
							0 === a.deps && a.resolve();
							return u
						},
						create: kn,
						normalize: function(e) {
							const {
								shapeFlag: t,
								children: n
							} = e, o = 32 & t;
							e.ssContent = wn(o ? n.default : n), e.ssFallback = o ? wn(n.fallback) : Mr(_r)
						}
					};

				function Cn(e, t) {
					const n = e.props && e.props[t];
					P(n) && n()
				}

				function kn(e, t, n, o, r, s, i, l, c, a, u = !1) {
					const {
						p: p,
						m: f,
						um: d,
						n: h,
						o: {
							parentNode: m,
							remove: g
						}
					} = a, v = e.props ? ee(e.props.timeout) : void 0, y = {
						vnode: e,
						parent: t,
						parentComponent: n,
						isSVG: i,
						container: o,
						hiddenContainer: r,
						anchor: s,
						deps: 0,
						pendingId: 0,
						timeout: "number" == typeof v ? v : -1,
						activeBranch: null,
						pendingBranch: null,
						isInFallback: !0,
						isHydrating: u,
						isUnmounted: !1,
						effects: [],
						resolve(e = !1) {
							const {
								vnode: t,
								activeBranch: n,
								pendingBranch: o,
								pendingId: r,
								effects: s,
								parentComponent: i,
								container: l
							} = y;
							if (y.isHydrating) y.isHydrating = !1;
							else if (!e) {
								const e = n && o.transition && "out-in" === o.transition.mode;
								e && (n.transition.afterLeave = () => {
									r === y.pendingId && f(o, l, t, 0)
								});
								let {
									anchor: t
								} = y;
								n && (t = h(n), d(n, i, y, !0)), e || f(o, l, t, 0)
							}
							Nn(y, o), y.pendingBranch = null, y.isInFallback = !1;
							let c = y.parent,
								a = !1;
							for (; c;) {
								if (c.pendingBranch) {
									c.effects.push(...s), a = !0;
									break
								}
								c = c.parent
							}
							a || tn(s), y.effects = [], Cn(t, "onResolve")
						},
						fallback(e) {
							if (!y.pendingBranch) return;
							const {
								vnode: t,
								activeBranch: n,
								parentComponent: o,
								container: r,
								isSVG: s
							} = y;
							Cn(t, "onFallback");
							const i = h(n),
								a = () => {
									y.isInFallback && (p(null, e, r, i, o, null, s, l, c), Nn(y, e))
								},
								u = e.transition && "out-in" === e.transition.mode;
							u && (n.transition.afterLeave = a), y.isInFallback = !0, d(n, o, null, !0), u || a()
						},
						move(e, t, n) {
							y.activeBranch && f(y.activeBranch, e, t, n), y.container = e
						},
						next: () => y.activeBranch && h(y.activeBranch),
						registerDep(e, t) {
							const n = !!y.pendingBranch;
							n && y.deps++;
							const o = e.vnode.el;
							e.asyncDep.catch((t => {
								Dt(t, e, 0)
							})).then((r => {
								if (e.isUnmounted || y.isUnmounted || y.pendingId !== e.suspenseId) return;
								e.asyncResolved = !0;
								const {
									vnode: s
								} = e;
								es(e, r, !1), o && (s.el = o);
								const l = !o && e.subTree.el;
								t(e, s, m(o || e.subTree.el), o ? null : h(e.subTree), y, i, c), l && g(l),
									bn(e, s.el), n && 0 == --y.deps && y.resolve()
							}))
						},
						unmount(e, t) {
							y.isUnmounted = !0, y.activeBranch && d(y.activeBranch, n, e, t), y.pendingBranch && d(y
								.pendingBranch, n, e, t)
						}
					};
					return y
				}

				function wn(e) {
					let t;
					if (P(e)) {
						const n = wr && e._c;
						n && (e._d = !1, Cr()), e = e(), n && (e._d = !0, t = xr, kr())
					}
					if (E(e)) {
						const t = function(e) {
							let t;
							for (let n = 0; n < e.length; n++) {
								const o = e[n];
								if (!Or(o)) return;
								if (o.type !== _r || "v-if" === o.children) {
									if (t) return;
									t = o
								}
							}
							return t
						}(e);
						e = t
					}
					return e = Lr(e), t && !e.dynamicChildren && (e.dynamicChildren = t.filter((t => t !== e))), e
				}

				function Tn(e, t) {
					t && t.pendingBranch ? E(e) ? t.effects.push(...e) : t.effects.push(e) : tn(e)
				}

				function Nn(e, t) {
					e.activeBranch = t;
					const {
						vnode: n,
						parentComponent: o
					} = e, r = n.el = t.el;
					o && o.subTree === n && (o.vnode.el = r, bn(o, r))
				}

				function En(e, t) {
					if (Kr) {
						let n = Kr.provides;
						const o = Kr.parent && Kr.parent.provides;
						o === n && (n = Kr.provides = Object.create(o)), n[e] = t
					} else;
				}

				function On(e, t, n = !1) {
					const o = Kr || fn;
					if (o) {
						const r = null == o.parent ? o.vnode.appContext && o.vnode.appContext.provides : o.parent.provides;
						if (r && e in r) return r[e];
						if (arguments.length > 1) return n && P(t) ? t.call(o.proxy) : t
					}
				}

				function An(e, t) {
					return Rn(e, null, {
						flush: "post"
					})
				}
				const Fn = {};

				function Pn(e, t, n) {
					return Rn(e, t, n)
				}

				function Rn(e, t, {
					immediate: n,
					deep: o,
					flush: r
				} = v) {
					const s = se() === (null == Kr ? void 0 : Kr.scope) ? Kr : null;
					let i, l, c = !1,
						a = !1;
					if (Et(e) ? (i = () => e.value, c = bt(e)) : yt(e) ? (i = () => e, o = !0) : E(e) ? (a = !0, c = e.some((
							e => yt(e) || bt(e))), i = () => e.map((e => Et(e) ? e.value : yt(e) ? Vn(e) : P(e) ? jt(e,
							s, 2) : void 0))) : i = P(e) ? t ? () => jt(e, s, 2) : () => {
							if (!s || !s.isUnmounted) return l && l(), Ut(e, s, 3, [u])
						} : _, t && o) {
						const e = i;
						i = () => Vn(e())
					}
					let u = e => {
							l = h.onStop = () => {
								jt(e, s, 4)
							}
						},
						p = a ? new Array(e.length).fill(Fn) : Fn;
					const f = () => {
						if (h.active)
							if (t) {
								const e = h.run();
								(o || c || (a ? e.some(((e, t) => Z(e, p[t]))) : Z(e, p))) && (l && l(), Ut(t, s, 3, [e,
									p === Fn ? void 0 : a && p[0] === Fn ? [] : p, u
								]), p = e)
							} else h.run()
					};
					let d;
					f.allowRecurse = !!t, "sync" === r ? d = f : "post" === r ? d = () => sr(f, s && s.suspense) : (f.pre = !
						0, s && (f.id = s.uid), d = () => Xt(f));
					const h = new me(i, d);
					t ? n ? f() : p = h.run() : "post" === r ? sr(h.run.bind(h), s && s.suspense) : h.run();
					return () => {
						h.stop(), s && s.scope && w(s.scope.effects, h)
					}
				}

				function $n(e, t, n) {
					const o = this.proxy,
						r = R(e) ? e.includes(".") ? Mn(o, e) : () => o[e] : e.bind(o, o);
					let s;
					P(t) ? s = t : (s = t.handler, n = t);
					const i = Kr;
					qr(this);
					const l = Rn(r, s.bind(o), n);
					return i ? qr(i) : Jr(), l
				}

				function Mn(e, t) {
					const n = t.split(".");
					return () => {
						let t = e;
						for (let e = 0; e < n.length && t; e++) t = t[n[e]];
						return t
					}
				}

				function Vn(e, t) {
					if (!M(e) || e.__v_skip) return e;
					if ((t = t || new Set).has(e)) return e;
					if (t.add(e), Et(e)) Vn(e.value, t);
					else if (E(e))
						for (let n = 0; n < e.length; n++) Vn(e[n], t);
					else if (A(e) || O(e)) e.forEach((e => {
						Vn(e, t)
					}));
					else if (L(e))
						for (const n in e) Vn(e[n], t);
					return e
				}

				function In() {
					const e = {
						isMounted: !1,
						isLeaving: !1,
						isUnmounting: !1,
						leavingVNodes: new Map
					};
					return lo((() => {
						e.isMounted = !0
					})), uo((() => {
						e.isUnmounting = !0
					})), e
				}
				const Bn = [Function, Array],
					Ln = {
						name: "BaseTransition",
						props: {
							mode: String,
							appear: Boolean,
							persisted: Boolean,
							onBeforeEnter: Bn,
							onEnter: Bn,
							onAfterEnter: Bn,
							onEnterCancelled: Bn,
							onBeforeLeave: Bn,
							onLeave: Bn,
							onAfterLeave: Bn,
							onLeaveCancelled: Bn,
							onBeforeAppear: Bn,
							onAppear: Bn,
							onAfterAppear: Bn,
							onAppearCancelled: Bn
						},
						setup(e, {
							slots: t
						}) {
							const n = Gr(),
								o = In();
							let r;
							return () => {
								const s = t.default && zn(t.default(), !0);
								if (!s || !s.length) return;
								let i = s[0];
								if (s.length > 1)
									for (const e of s)
										if (e.type !== _r) {
											i = e;
											break
										} const l = xt(e),
									{
										mode: c
									} = l;
								if (o.isLeaving) return Dn(i);
								const a = Hn(i);
								if (!a) return Dn(i);
								const u = Un(a, l, o, n);
								Wn(a, u);
								const p = n.subTree,
									f = p && Hn(p);
								let d = !1;
								const {
									getTransitionKey: h
								} = a.type;
								if (h) {
									const e = h();
									void 0 === r ? r = e : e !== r && (r = e, d = !0)
								}
								if (f && f.type !== _r && (!Ar(a, f) || d)) {
									const e = Un(f, l, o, n);
									if (Wn(f, e), "out-in" === c) return o.isLeaving = !0, e.afterLeave = () => {
										o.isLeaving = !1, !1 !== n.update.active && n.update()
									}, Dn(i);
									"in-out" === c && a.type !== _r && (e.delayLeave = (e, t, n) => {
										jn(o, f)[String(f.key)] = f, e._leaveCb = () => {
											t(), e._leaveCb = void 0, delete u.delayedLeave
										}, u.delayedLeave = n
									})
								}
								return i
							}
						}
					};

				function jn(e, t) {
					const {
						leavingVNodes: n
					} = e;
					let o = n.get(t.type);
					return o || (o = Object.create(null), n.set(t.type, o)), o
				}

				function Un(e, t, n, o) {
					const {
						appear: r,
						mode: s,
						persisted: i = !1,
						onBeforeEnter: l,
						onEnter: c,
						onAfterEnter: a,
						onEnterCancelled: u,
						onBeforeLeave: p,
						onLeave: f,
						onAfterLeave: d,
						onLeaveCancelled: h,
						onBeforeAppear: m,
						onAppear: g,
						onAfterAppear: v,
						onAppearCancelled: y
					} = t, _ = String(e.key), b = jn(n, e), S = (e, t) => {
						e && Ut(e, o, 9, t)
					}, x = (e, t) => {
						const n = t[1];
						S(e, t), E(e) ? e.every((e => e.length <= 1)) && n() : e.length <= 1 && n()
					}, C = {
						mode: s,
						persisted: i,
						beforeEnter(t) {
							let o = l;
							if (!n.isMounted) {
								if (!r) return;
								o = m || l
							}
							t._leaveCb && t._leaveCb(!0);
							const s = b[_];
							s && Ar(e, s) && s.el._leaveCb && s.el._leaveCb(), S(o, [t])
						},
						enter(e) {
							let t = c,
								o = a,
								s = u;
							if (!n.isMounted) {
								if (!r) return;
								t = g || c, o = v || a, s = y || u
							}
							let i = !1;
							const l = e._enterCb = t => {
								i || (i = !0, S(t ? s : o, [e]), C.delayedLeave && C.delayedLeave(), e._enterCb =
									void 0)
							};
							t ? x(t, [e, l]) : l()
						},
						leave(t, o) {
							const r = String(e.key);
							if (t._enterCb && t._enterCb(!0), n.isUnmounting) return o();
							S(p, [t]);
							let s = !1;
							const i = t._leaveCb = n => {
								s || (s = !0, o(), S(n ? h : d, [t]), t._leaveCb = void 0, b[r] === e && delete b[r])
							};
							b[r] = e, f ? x(f, [t, i]) : i()
						},
						clone: e => Un(e, t, n, o)
					};
					return C
				}

				function Dn(e) {
					if (Jn(e)) return (e = Ir(e)).children = null, e
				}

				function Hn(e) {
					return Jn(e) ? e.children ? e.children[0] : void 0 : e
				}

				function Wn(e, t) {
					6 & e.shapeFlag && e.component ? Wn(e.component.subTree, t) : 128 & e.shapeFlag ? (e.ssContent
							.transition = t.clone(e.ssContent), e.ssFallback.transition = t.clone(e.ssFallback)) : e
						.transition = t
				}

				function zn(e, t = !1, n) {
					let o = [],
						r = 0;
					for (let s = 0; s < e.length; s++) {
						let i = e[s];
						const l = null == n ? i.key : String(n) + String(null != i.key ? i.key : s);
						i.type === vr ? (128 & i.patchFlag && r++, o = o.concat(zn(i.children, t, l))) : (t || i.type !==
							_r) && o.push(null != l ? Ir(i, {
							key: l
						}) : i)
					}
					if (r > 1)
						for (let s = 0; s < o.length; s++) o[s].patchFlag = -2;
					return o
				}

				function Kn(e) {
					return P(e) ? {
						setup: e,
						name: e.name
					} : e
				}
				const Gn = e => !!e.type.__asyncLoader;

				function qn(e, t) {
					const {
						ref: n,
						props: o,
						children: r,
						ce: s
					} = t.vnode, i = Mr(e, o, r);
					return i.ref = n, i.ce = s, delete t.vnode.ce, i
				}
				const Jn = e => e.type.__isKeepAlive,
					Zn = {
						name: "KeepAlive",
						__isKeepAlive: !0,
						props: {
							include: [String, RegExp, Array],
							exclude: [String, RegExp, Array],
							max: [String, Number]
						},
						setup(e, {
							slots: t
						}) {
							const n = Gr(),
								o = n.ctx,
								r = new Map,
								s = new Set;
							let i = null;
							const l = n.suspense,
								{
									renderer: {
										p: c,
										m: a,
										um: u,
										o: {
											createElement: p
										}
									}
								} = o,
								f = p("div");

							function d(e) {
								no(e), u(e, n, l, !0)
							}

							function h(e) {
								r.forEach(((t, n) => {
									const o = ss(t.type);
									!o || e && e(o) || m(n)
								}))
							}

							function m(e) {
								const t = r.get(e);
								i && Ar(t, i) ? i && no(i) : d(t), r.delete(e), s.delete(e)
							}
							o.activate = (e, t, n, o, r) => {
								const s = e.component;
								a(e, t, n, 0, l), c(s.vnode, e, t, n, s, l, o, e.slotScopeIds, r), sr((() => {
									s.isDeactivated = !1, s.a && Y(s.a);
									const t = e.props && e.props.onVnodeMounted;
									t && Hr(t, s.parent, e)
								}), l)
							}, o.deactivate = e => {
								const t = e.component;
								a(e, f, null, 1, l), sr((() => {
									t.da && Y(t.da);
									const n = e.props && e.props.onVnodeUnmounted;
									n && Hr(n, t.parent, e), t.isDeactivated = !0
								}), l)
							}, Pn((() => [e.include, e.exclude]), (([e, t]) => {
								e && h((t => Yn(e, t))), t && h((e => !Yn(t, e)))
							}), {
								flush: "post",
								deep: !0
							});
							let g = null;
							const v = () => {
								null != g && r.set(g, oo(n.subTree))
							};
							return lo(v), ao(v), uo((() => {
								r.forEach((e => {
									const {
										subTree: t,
										suspense: o
									} = n, r = oo(t);
									if (e.type !== r.type || e.key !== r.key) d(e);
									else {
										no(r);
										const e = r.component.da;
										e && sr(e, o)
									}
								}))
							})), () => {
								if (g = null, !t.default) return null;
								const n = t.default(),
									o = n[0];
								if (n.length > 1) return i = null, n;
								if (!(Or(o) && (4 & o.shapeFlag || 128 & o.shapeFlag))) return i = null, o;
								let l = oo(o);
								const c = l.type,
									a = ss(Gn(l) ? l.type.__asyncResolved || {} : c),
									{
										include: u,
										exclude: p,
										max: f
									} = e;
								if (u && (!a || !Yn(u, a)) || p && a && Yn(p, a)) return i = l, o;
								const d = null == l.key ? c : l.key,
									h = r.get(d);
								return l.el && (l = Ir(l), 128 & o.shapeFlag && (o.ssContent = l)), g = d, h ? (l.el = h
									.el, l.component = h.component, l.transition && Wn(l, l.transition), l
									.shapeFlag |= 512, s.delete(d), s.add(d)) : (s.add(d), f && s.size > parseInt(f,
									10) && m(s.values().next().value)), l.shapeFlag |= 256, i = l, Sn(o.type) ? o : l
							}
						}
					};

				function Yn(e, t) {
					return E(e) ? e.some((e => Yn(e, t))) : R(e) ? e.split(",").includes(t) : "[object RegExp]" === B(e) && e
						.test(t)
				}

				function Qn(e, t) {
					eo(e, "a", t)
				}

				function Xn(e, t) {
					eo(e, "da", t)
				}

				function eo(e, t, n = Kr) {
					const o = e.__wdc || (e.__wdc = () => {
						let t = n;
						for (; t;) {
							if (t.isDeactivated) return;
							t = t.parent
						}
						return e()
					});
					if (ro(t, o, n), n) {
						let e = n.parent;
						for (; e && e.parent;) Jn(e.parent.vnode) && to(o, t, n, e), e = e.parent
					}
				}

				function to(e, t, n, o) {
					const r = ro(t, e, o, !0);
					po((() => {
						w(o[t], r)
					}), n)
				}

				function no(e) {
					e.shapeFlag &= -257, e.shapeFlag &= -513
				}

				function oo(e) {
					return 128 & e.shapeFlag ? e.ssContent : e
				}

				function ro(e, t, n = Kr, o = !1) {
					if (n) {
						const r = n[e] || (n[e] = []),
							s = t.__weh || (t.__weh = (...o) => {
								if (n.isUnmounted) return;
								_e(), qr(n);
								const r = Ut(t, n, e, o);
								return Jr(), be(), r
							});
						return o ? r.unshift(s) : r.push(s), s
					}
				}
				const so = e => (t, n = Kr) => (!Xr || "sp" === e) && ro(e, ((...e) => t(...e)), n),
					io = so("bm"),
					lo = so("m"),
					co = so("bu"),
					ao = so("u"),
					uo = so("bum"),
					po = so("um"),
					fo = so("sp"),
					ho = so("rtg"),
					mo = so("rtc");

				function go(e, t = Kr) {
					ro("ec", e, t)
				}

				function vo(e, t, n, o) {
					const r = e.dirs,
						s = t && t.dirs;
					for (let i = 0; i < r.length; i++) {
						const l = r[i];
						s && (l.oldValue = s[i].value);
						let c = l.dir[o];
						c && (_e(), Ut(c, n, 8, [e.el, l, e, t]), be())
					}
				}
				const yo = "components";
				const _o = Symbol();

				function bo(e, t, n = !0, o = !1) {
					const r = fn || Kr;
					if (r) {
						const n = r.type;
						if (e === yo) {
							const e = ss(n, !1);
							if (e && (e === t || e === z(t) || e === q(z(t)))) return n
						}
						const s = So(r[e] || n[e], t) || So(r.appContext[e], t);
						return !s && o ? n : s
					}
				}

				function So(e, t) {
					return e && (e[t] || e[z(t)] || e[q(z(t))])
				}

				function xo(e) {
					return e.some((e => !Or(e) || e.type !== _r && !(e.type === vr && !xo(e.children)))) ? e : null
				}
				const Co = e => e ? Zr(e) ? rs(e) || e.proxy : Co(e.parent) : null,
					ko = k(Object.create(null), {
						$: e => e,
						$el: e => e.vnode.el,
						$data: e => e.data,
						$props: e => e.props,
						$attrs: e => e.attrs,
						$slots: e => e.slots,
						$refs: e => e.refs,
						$parent: e => Co(e.parent),
						$root: e => Co(e.root),
						$emit: e => e.emit,
						$options: e => Po(e),
						$forceUpdate: e => e.f || (e.f = () => Xt(e.update)),
						$nextTick: e => e.n || (e.n = Qt.bind(e.proxy)),
						$watch: e => $n.bind(e)
					}),
					wo = (e, t) => e !== v && !e.__isScriptSetup && N(e, t),
					To = {
						get({
							_: e
						}, t) {
							const {
								ctx: n,
								setupState: o,
								data: r,
								props: s,
								accessCache: i,
								type: l,
								appContext: c
							} = e;
							let a;
							if ("$" !== t[0]) {
								const l = i[t];
								if (void 0 !== l) switch (l) {
									case 1:
										return o[t];
									case 2:
										return r[t];
									case 4:
										return n[t];
									case 3:
										return s[t]
								} else {
									if (wo(o, t)) return i[t] = 1, o[t];
									if (r !== v && N(r, t)) return i[t] = 2, r[t];
									if ((a = e.propsOptions[0]) && N(a, t)) return i[t] = 3, s[t];
									if (n !== v && N(n, t)) return i[t] = 4, n[t];
									Eo && (i[t] = 0)
								}
							}
							const u = ko[t];
							let p, f;
							return u ? ("$attrs" === t && Se(e, 0, t), u(e)) : (p = l.__cssModules) && (p = p[t]) ? p :
								n !== v && N(n, t) ? (i[t] = 4, n[t]) : (f = c.config.globalProperties, N(f, t) ? f[t] :
									void 0)
						},
						set({
							_: e
						}, t, n) {
							const {
								data: o,
								setupState: r,
								ctx: s
							} = e;
							return wo(r, t) ? (r[t] = n, !0) : o !== v && N(o, t) ? (o[t] = n, !0) : !N(e.props, t) && ((
								"$" !== t[0] || !(t.slice(1) in e)) && (s[t] = n, !0))
						},
						has({
							_: {
								data: e,
								setupState: t,
								accessCache: n,
								ctx: o,
								appContext: r,
								propsOptions: s
							}
						}, i) {
							let l;
							return !!n[i] || e !== v && N(e, i) || wo(t, i) || (l = s[0]) && N(l, i) || N(o, i) || N(ko,
								i) || N(r.config.globalProperties, i)
						},
						defineProperty(e, t, n) {
							return null != n.get ? e._.accessCache[t] = 0 : N(n, "value") && this.set(e, t, n.value, null),
								Reflect.defineProperty(e, t, n)
						}
					},
					No = k({}, To, {
						get(e, t) {
							if (t !== Symbol.unscopables) return To.get(e, t, e)
						},
						has: (e, t) => "_" !== t[0] && !n(t)
					});
				let Eo = !0;

				function Oo(e) {
					const t = Po(e),
						n = e.proxy,
						o = e.ctx;
					Eo = !1, t.beforeCreate && Ao(t.beforeCreate, e, "bc");
					const {
						data: r,
						computed: s,
						methods: i,
						watch: l,
						provide: c,
						inject: a,
						created: u,
						beforeMount: p,
						mounted: f,
						beforeUpdate: d,
						updated: h,
						activated: m,
						deactivated: g,
						beforeUnmount: v,
						unmounted: y,
						render: b,
						renderTracked: S,
						renderTriggered: x,
						errorCaptured: C,
						serverPrefetch: k,
						expose: w,
						inheritAttrs: T,
						components: N,
						directives: O
					} = t;
					if (a && function(e, t, n = _, o = !1) {
							E(e) && (e = Vo(e));
							for (const r in e) {
								const n = e[r];
								let s;
								s = M(n) ? "default" in n ? On(n.from || r, n.default, !0) : On(n.from || r) : On(n), Et(
									s) && o ? Object.defineProperty(t, r, {
									enumerable: !0,
									configurable: !0,
									get: () => s.value,
									set: e => s.value = e
								}) : t[r] = s
							}
						}(a, o, null, e.appContext.config.unwrapInjectedRef), i)
						for (const _ in i) {
							const e = i[_];
							P(e) && (o[_] = e.bind(n))
						}
					if (r) {
						const t = r.call(n, n);
						M(t) && (e.data = ht(t))
					}
					if (Eo = !0, s)
						for (const E in s) {
							const e = s[E],
								t = P(e) ? e.bind(n, n) : P(e.get) ? e.get.bind(n, n) : _,
								r = !P(e) && P(e.set) ? e.set.bind(n) : _,
								i = is({
									get: t,
									set: r
								});
							Object.defineProperty(o, E, {
								enumerable: !0,
								configurable: !0,
								get: () => i.value,
								set: e => i.value = e
							})
						}
					if (l)
						for (const _ in l) Fo(l[_], o, n, _);
					if (c) {
						const e = P(c) ? c.call(n) : c;
						Reflect.ownKeys(e).forEach((t => {
							En(t, e[t])
						}))
					}

					function A(e, t) {
						E(t) ? t.forEach((t => e(t.bind(n)))) : t && e(t.bind(n))
					}
					if (u && Ao(u, e, "c"), A(io, p), A(lo, f), A(co, d), A(ao, h), A(Qn, m), A(Xn, g), A(go, C), A(mo, S),
						A(ho, x), A(uo, v), A(po, y), A(fo, k), E(w))
						if (w.length) {
							const t = e.exposed || (e.exposed = {});
							w.forEach((e => {
								Object.defineProperty(t, e, {
									get: () => n[e],
									set: t => n[e] = t
								})
							}))
						} else e.exposed || (e.exposed = {});
					b && e.render === _ && (e.render = b), null != T && (e.inheritAttrs = T), N && (e.components = N), O && (
						e.directives = O)
				}

				function Ao(e, t, n) {
					Ut(E(e) ? e.map((e => e.bind(t.proxy))) : e.bind(t.proxy), t, n)
				}

				function Fo(e, t, n, o) {
					const r = o.includes(".") ? Mn(n, o) : () => n[o];
					if (R(e)) {
						const n = t[e];
						P(n) && Pn(r, n)
					} else if (P(e)) Pn(r, e.bind(n));
					else if (M(e))
						if (E(e)) e.forEach((e => Fo(e, t, n, o)));
						else {
							const o = P(e.handler) ? e.handler.bind(n) : t[e.handler];
							P(o) && Pn(r, o, e)
						}
				}

				function Po(e) {
					const t = e.type,
						{
							mixins: n,
							extends: o
						} = t,
						{
							mixins: r,
							optionsCache: s,
							config: {
								optionMergeStrategies: i
							}
						} = e.appContext,
						l = s.get(t);
					let c;
					return l ? c = l : r.length || n || o ? (c = {}, r.length && r.forEach((e => Ro(c, e, i, !0))), Ro(c, t,
						i)) : c = t, M(t) && s.set(t, c), c
				}

				function Ro(e, t, n, o = !1) {
					const {
						mixins: r,
						extends: s
					} = t;
					s && Ro(e, s, n, !0), r && r.forEach((t => Ro(e, t, n, !0)));
					for (const i in t)
						if (o && "expose" === i);
						else {
							const o = $o[i] || n && n[i];
							e[i] = o ? o(e[i], t[i]) : t[i]
						} return e
				}
				const $o = {
					data: Mo,
					props: Bo,
					emits: Bo,
					methods: Bo,
					computed: Bo,
					beforeCreate: Io,
					created: Io,
					beforeMount: Io,
					mounted: Io,
					beforeUpdate: Io,
					updated: Io,
					beforeDestroy: Io,
					beforeUnmount: Io,
					destroyed: Io,
					unmounted: Io,
					activated: Io,
					deactivated: Io,
					errorCaptured: Io,
					serverPrefetch: Io,
					components: Bo,
					directives: Bo,
					watch: function(e, t) {
						if (!e) return t;
						if (!t) return e;
						const n = k(Object.create(null), e);
						for (const o in t) n[o] = Io(e[o], t[o]);
						return n
					},
					provide: Mo,
					inject: function(e, t) {
						return Bo(Vo(e), Vo(t))
					}
				};

				function Mo(e, t) {
					return t ? e ? function() {
						return k(P(e) ? e.call(this, this) : e, P(t) ? t.call(this, this) : t)
					} : t : e
				}

				function Vo(e) {
					if (E(e)) {
						const t = {};
						for (let n = 0; n < e.length; n++) t[e[n]] = e[n];
						return t
					}
					return e
				}

				function Io(e, t) {
					return e ? [...new Set([].concat(e, t))] : t
				}

				function Bo(e, t) {
					return e ? k(k(Object.create(null), e), t) : t
				}

				function Lo(e, t, n, o) {
					const [r, s] = e.propsOptions;
					let i, l = !1;
					if (t)
						for (let c in t) {
							if (U(c)) continue;
							const a = t[c];
							let u;
							r && N(r, u = z(c)) ? s && s.includes(u) ? (i || (i = {}))[u] = a : n[u] = a : pn(e.emitsOptions,
								c) || c in o && a === o[c] || (o[c] = a, l = !0)
						}
					if (s) {
						const t = xt(n),
							o = i || v;
						for (let i = 0; i < s.length; i++) {
							const l = s[i];
							n[l] = jo(r, t, l, o[l], e, !N(o, l))
						}
					}
					return l
				}

				function jo(e, t, n, o, r, s) {
					const i = e[n];
					if (null != i) {
						const e = N(i, "default");
						if (e && void 0 === o) {
							const e = i.default;
							if (i.type !== Function && P(e)) {
								const {
									propsDefaults: s
								} = r;
								n in s ? o = s[n] : (qr(r), o = s[n] = e.call(null, t), Jr())
							} else o = e
						}
						i[0] && (s && !e ? o = !1 : !i[1] || "" !== o && o !== G(n) || (o = !0))
					}
					return o
				}

				function Uo(e, t, n = !1) {
					const o = t.propsCache,
						r = o.get(e);
					if (r) return r;
					const s = e.props,
						i = {},
						l = [];
					let c = !1;
					if (!P(e)) {
						const o = e => {
							c = !0;
							const [n, o] = Uo(e, t, !0);
							k(i, n), o && l.push(...o)
						};
						!n && t.mixins.length && t.mixins.forEach(o), e.extends && o(e.extends), e.mixins && e.mixins
							.forEach(o)
					}
					if (!s && !c) return M(e) && o.set(e, y), y;
					if (E(s))
						for (let u = 0; u < s.length; u++) {
							const e = z(s[u]);
							Do(e) && (i[e] = v)
						} else if (s)
							for (const u in s) {
								const e = z(u);
								if (Do(e)) {
									const t = s[u],
										n = i[e] = E(t) || P(t) ? {
											type: t
										} : Object.assign({}, t);
									if (n) {
										const t = zo(Boolean, n.type),
											o = zo(String, n.type);
										n[0] = t > -1, n[1] = o < 0 || t < o, (t > -1 || N(n, "default")) && l.push(e)
									}
								}
							}
					const a = [i, l];
					return M(e) && o.set(e, a), a
				}

				function Do(e) {
					return "$" !== e[0]
				}

				function Ho(e) {
					const t = e && e.toString().match(/^\s*(function|class) (\w+)/);
					return t ? t[2] : null === e ? "null" : ""
				}

				function Wo(e, t) {
					return Ho(e) === Ho(t)
				}

				function zo(e, t) {
					return E(t) ? t.findIndex((t => Wo(t, e))) : P(t) && Wo(t, e) ? 0 : -1
				}
				const Ko = e => "_" === e[0] || "$stable" === e,
					Go = e => E(e) ? e.map(Lr) : [Lr(e)],
					qo = (e, t, n) => {
						if (t._n) return t;
						const o = mn(((...e) => Go(t(...e))), n);
						return o._c = !1, o
					},
					Jo = (e, t, n) => {
						const o = e._ctx;
						for (const r in e) {
							if (Ko(r)) continue;
							const n = e[r];
							if (P(n)) t[r] = qo(0, n, o);
							else if (null != n) {
								const e = Go(n);
								t[r] = () => e
							}
						}
					},
					Zo = (e, t) => {
						const n = Go(t);
						e.slots.default = () => n
					};

				function Yo() {
					return {
						app: null,
						config: {
							isNativeTag: b,
							performance: !1,
							globalProperties: {},
							optionMergeStrategies: {},
							errorHandler: void 0,
							warnHandler: void 0,
							compilerOptions: {}
						},
						mixins: [],
						components: {},
						directives: {},
						provides: Object.create(null),
						optionsCache: new WeakMap,
						propsCache: new WeakMap,
						emitsCache: new WeakMap
					}
				}
				let Qo = 0;

				function Xo(e, t) {
					return function(n, o = null) {
						P(n) || (n = Object.assign({}, n)), null == o || M(o) || (o = null);
						const r = Yo(),
							s = new Set;
						let i = !1;
						const l = r.app = {
							_uid: Qo++,
							_component: n,
							_props: o,
							_container: null,
							_context: r,
							_instance: null,
							version: ps,
							get config() {
								return r.config
							},
							set config(e) {},
							use: (e, ...t) => (s.has(e) || (e && P(e.install) ? (s.add(e), e.install(l, ...t)) : P(
								e) && (s.add(e), e(l, ...t))), l),
							mixin: e => (r.mixins.includes(e) || r.mixins.push(e), l),
							component: (e, t) => t ? (r.components[e] = t, l) : r.components[e],
							directive: (e, t) => t ? (r.directives[e] = t, l) : r.directives[e],
							mount(s, c, a) {
								if (!i) {
									const u = Mr(n, o);
									return u.appContext = r, c && t ? t(u, s) : e(u, s, a), i = !0, l._container = s,
										s.__vue_app__ = l, rs(u.component) || u.component.proxy
								}
							},
							unmount() {
								i && (e(null, l._container), delete l._container.__vue_app__)
							},
							provide: (e, t) => (r.provides[e] = t, l)
						};
						return l
					}
				}

				function er(e, t, n, o, r = !1) {
					if (E(e)) return void e.forEach(((e, s) => er(e, t && (E(t) ? t[s] : t), n, o, r)));
					if (Gn(o) && !r) return;
					const s = 4 & o.shapeFlag ? rs(o.component) || o.component.proxy : o.el,
						i = r ? null : s,
						{
							i: l,
							r: c
						} = e,
						a = t && t.r,
						u = l.refs === v ? l.refs = {} : l.refs,
						p = l.setupState;
					if (null != a && a !== c && (R(a) ? (u[a] = null, N(p, a) && (p[a] = null)) : Et(a) && (a.value = null)),
						P(c)) jt(c, l, 12, [i, u]);
					else {
						const t = R(c),
							o = Et(c);
						if (t || o) {
							const l = () => {
								if (e.f) {
									const n = t ? N(p, c) ? p[c] : u[c] : c.value;
									r ? E(n) && w(n, s) : E(n) ? n.includes(s) || n.push(s) : t ? (u[c] = [s], N(p, c) &&
										(p[c] = u[c])) : (c.value = [s], e.k && (u[e.k] = c.value))
								} else t ? (u[c] = i, N(p, c) && (p[c] = i)) : o && (c.value = i, e.k && (u[e.k] = i))
							};
							i ? (l.id = -1, sr(l, n)) : l()
						}
					}
				}
				let tr = !1;
				const nr = e => /svg/.test(e.namespaceURI) && "foreignObject" !== e.tagName,
					or = e => 8 === e.nodeType;

				function rr(e) {
					const {
						mt: t,
						p: n,
						o: {
							patchProp: o,
							createText: r,
							nextSibling: s,
							parentNode: i,
							remove: l,
							insert: c,
							createComment: a
						}
					} = e, u = (n, o, l, a, g, v = !1) => {
						const y = or(n) && "[" === n.data,
							_ = () => h(n, o, l, a, g, y),
							{
								type: b,
								ref: S,
								shapeFlag: x,
								patchFlag: C
							} = o;
						let k = n.nodeType;
						o.el = n, -2 === C && (v = !1, o.dynamicChildren = null);
						let w = null;
						switch (b) {
							case yr:
								3 !== k ? "" === o.children ? (c(o.el = r(""), i(n), n), w = n) : w = _() : (n.data !== o
									.children && (tr = !0, n.data = o.children), w = s(n));
								break;
							case _r:
								w = 8 !== k || y ? _() : s(n);
								break;
							case br:
								if (y && (k = (n = s(n)).nodeType), 1 === k || 3 === k) {
									w = n;
									const e = !o.children.length;
									for (let t = 0; t < o.staticCount; t++) e && (o.children += 1 === w.nodeType ? w
										.outerHTML : w.data), t === o.staticCount - 1 && (o.anchor = w), w = s(w);
									return y ? s(w) : w
								}
								_();
								break;
							case vr:
								w = y ? d(n, o, l, a, g, v) : _();
								break;
							default:
								if (1 & x) w = 1 !== k || o.type.toLowerCase() !== n.tagName.toLowerCase() ? _() : p(n,
									o, l, a, g, v);
								else if (6 & x) {
									o.slotScopeIds = g;
									const e = i(n);
									if (t(o, e, null, l, a, nr(e), v), w = y ? m(n) : s(n), w && or(w) &&
										"teleport end" === w.data && (w = s(w)), Gn(o)) {
										let t;
										y ? (t = Mr(vr), t.anchor = w ? w.previousSibling : e.lastChild) : t = 3 === n
											.nodeType ? Br("") : Mr("div"), t.el = n, o.component.subTree = t
									}
								} else 64 & x ? w = 8 !== k ? _() : o.type.hydrate(n, o, l, a, g, v, e, f) : 128 & x && (
									w = o.type.hydrate(n, o, l, a, nr(i(n)), g, v, e, u))
						}
						return null != S && er(S, null, a, o), w
					}, p = (e, t, n, r, s, i) => {
						i = i || !!t.dynamicChildren;
						const {
							type: c,
							props: a,
							patchFlag: u,
							shapeFlag: p,
							dirs: d
						} = t, h = "input" === c && d || "option" === c;
						if (h || -1 !== u) {
							if (d && vo(t, null, n, "created"), a)
								if (h || !i || 48 & u)
									for (const t in a)(h && t.endsWith("value") || x(t) && !U(t)) && o(e, t, null, a[t],
										!1, void 0, n);
								else a.onClick && o(e, "onClick", null, a.onClick, !1, void 0, n);
							let c;
							if ((c = a && a.onVnodeBeforeMount) && Hr(c, n, t), d && vo(t, null, n, "beforeMount"), ((c =
									a && a.onVnodeMounted) || d) && Tn((() => {
									c && Hr(c, n, t), d && vo(t, null, n, "mounted")
								}), r), 16 & p && (!a || !a.innerHTML && !a.textContent)) {
								let o = f(e.firstChild, t, e, n, r, s, i);
								for (; o;) {
									tr = !0;
									const e = o;
									o = o.nextSibling, l(e)
								}
							} else 8 & p && e.textContent !== t.children && (tr = !0, e.textContent = t.children)
						}
						return e.nextSibling
					}, f = (e, t, o, r, s, i, l) => {
						l = l || !!t.dynamicChildren;
						const c = t.children,
							a = c.length;
						for (let p = 0; p < a; p++) {
							const t = l ? c[p] : c[p] = Lr(c[p]);
							if (e) e = u(e, t, r, s, i, l);
							else {
								if (t.type === yr && !t.children) continue;
								tr = !0, n(null, t, o, null, r, s, nr(o), i)
							}
						}
						return e
					}, d = (e, t, n, o, r, l) => {
						const {
							slotScopeIds: u
						} = t;
						u && (r = r ? r.concat(u) : u);
						const p = i(e),
							d = f(s(e), t, p, n, o, r, l);
						return d && or(d) && "]" === d.data ? s(t.anchor = d) : (tr = !0, c(t.anchor = a("]"), p, d), d)
					}, h = (e, t, o, r, c, a) => {
						if (tr = !0, t.el = null, a) {
							const t = m(e);
							for (;;) {
								const n = s(e);
								if (!n || n === t) break;
								l(n)
							}
						}
						const u = s(e),
							p = i(e);
						return l(e), n(null, t, p, u, o, r, nr(p), c), u
					}, m = e => {
						let t = 0;
						for (; e;)
							if ((e = s(e)) && or(e) && ("[" === e.data && t++, "]" === e.data)) {
								if (0 === t) return s(e);
								t--
							} return e
					};
					return [(e, t) => {
						if (!t.hasChildNodes()) return n(null, e, t), on(), void(t._vnode = e);
						tr = !1, u(t.firstChild, e, null, null, null), on(), t._vnode = e, tr && console.error(
							"Hydration completed but contains mismatches.")
					}, u]
				}
				const sr = Tn;

				function ir(e) {
					return cr(e)
				}

				function lr(e) {
					return cr(e, rr)
				}

				function cr(e, t) {
					(te || (te = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self :
						"undefined" != typeof window ? window : "undefined" != typeof global ? global : {})).__VUE__ = !0;
					const {
						insert: n,
						remove: o,
						patchProp: r,
						createElement: s,
						createText: i,
						createComment: l,
						setText: c,
						setElementText: a,
						parentNode: u,
						nextSibling: p,
						setScopeId: f = _,
						insertStaticContent: d
					} = e, h = (e, t, n, o = null, r = null, s = null, i = !1, l = null, c = !!t.dynamicChildren) => {
						if (e === t) return;
						e && !Ar(e, t) && (o = J(e), D(e, r, s, !0), e = null), -2 === t.patchFlag && (c = !1, t
							.dynamicChildren = null);
						const {
							type: a,
							ref: u,
							shapeFlag: p
						} = t;
						switch (a) {
							case yr:
								m(e, t, n, o);
								break;
							case _r:
								g(e, t, n, o);
								break;
							case br:
								null == e && b(t, n, o, i);
								break;
							case vr:
								A(e, t, n, o, r, s, i, l, c);
								break;
							default:
								1 & p ? S(e, t, n, o, r, s, i, l, c) : 6 & p ? F(e, t, n, o, r, s, i, l, c) : (64 & p ||
									128 & p) && a.process(e, t, n, o, r, s, i, l, c, X)
						}
						null != u && r && er(u, e && e.ref, s, t || e, !t)
					}, m = (e, t, o, r) => {
						if (null == e) n(t.el = i(t.children), o, r);
						else {
							const n = t.el = e.el;
							t.children !== e.children && c(n, t.children)
						}
					}, g = (e, t, o, r) => {
						null == e ? n(t.el = l(t.children || ""), o, r) : t.el = e.el
					}, b = (e, t, n, o) => {
						[e.el, e.anchor] = d(e.children, t, n, o, e.el, e.anchor)
					}, S = (e, t, n, o, r, s, i, l, c) => {
						i = i || "svg" === t.type, null == e ? x(t, n, o, r, s, i, l, c) : T(e, t, r, s, i, l, c)
					}, x = (e, t, o, i, l, c, u, p) => {
						let f, d;
						const {
							type: h,
							props: m,
							shapeFlag: g,
							transition: v,
							dirs: y
						} = e;
						if (f = e.el = s(e.type, c, m && m.is, m), 8 & g ? a(f, e.children) : 16 & g && w(e.children, f,
								null, i, l, c && "foreignObject" !== h, u, p), y && vo(e, null, i, "created"), C(f, e, e
								.scopeId, u, i), m) {
							for (const t in m) "value" === t || U(t) || r(f, t, null, m[t], c, e.children, i, l, q);
							"value" in m && r(f, "value", null, m.value), (d = m.onVnodeBeforeMount) && Hr(d, i, e)
						}
						y && vo(e, null, i, "beforeMount");
						const _ = (!l || l && !l.pendingBranch) && v && !v.persisted;
						_ && v.beforeEnter(f), n(f, t, o), ((d = m && m.onVnodeMounted) || _ || y) && sr((() => {
							d && Hr(d, i, e), _ && v.enter(f), y && vo(e, null, i, "mounted")
						}), l)
					}, C = (e, t, n, o, r) => {
						if (n && f(e, n), o)
							for (let s = 0; s < o.length; s++) f(e, o[s]);
						if (r) {
							if (t === r.subTree) {
								const t = r.vnode;
								C(e, t, t.scopeId, t.slotScopeIds, r.parent)
							}
						}
					}, w = (e, t, n, o, r, s, i, l, c = 0) => {
						for (let a = c; a < e.length; a++) {
							const c = e[a] = l ? jr(e[a]) : Lr(e[a]);
							h(null, c, t, n, o, r, s, i, l)
						}
					}, T = (e, t, n, o, s, i, l) => {
						const c = t.el = e.el;
						let {
							patchFlag: u,
							dynamicChildren: p,
							dirs: f
						} = t;
						u |= 16 & e.patchFlag;
						const d = e.props || v,
							h = t.props || v;
						let m;
						n && ar(n, !1), (m = h.onVnodeBeforeUpdate) && Hr(m, n, t, e), f && vo(t, e, n, "beforeUpdate"),
							n && ar(n, !0);
						const g = s && "foreignObject" !== t.type;
						if (p ? E(e.dynamicChildren, p, c, n, o, g, i) : l || I(e, t, c, null, n, o, g, i, !1), u > 0) {
							if (16 & u) O(c, t, d, h, n, o, s);
							else if (2 & u && d.class !== h.class && r(c, "class", null, h.class, s), 4 & u && r(c,
									"style", d.style, h.style, s), 8 & u) {
								const i = t.dynamicProps;
								for (let t = 0; t < i.length; t++) {
									const l = i[t],
										a = d[l],
										u = h[l];
									u === a && "value" !== l || r(c, l, a, u, s, e.children, n, o, q)
								}
							}
							1 & u && e.children !== t.children && a(c, t.children)
						} else l || null != p || O(c, t, d, h, n, o, s);
						((m = h.onVnodeUpdated) || f) && sr((() => {
							m && Hr(m, n, t, e), f && vo(t, e, n, "updated")
						}), o)
					}, E = (e, t, n, o, r, s, i) => {
						for (let l = 0; l < t.length; l++) {
							const c = e[l],
								a = t[l],
								p = c.el && (c.type === vr || !Ar(c, a) || 70 & c.shapeFlag) ? u(c.el) : n;
							h(c, a, p, null, o, r, s, i, !0)
						}
					}, O = (e, t, n, o, s, i, l) => {
						if (n !== o) {
							if (n !== v)
								for (const c in n) U(c) || c in o || r(e, c, n[c], null, l, t.children, s, i, q);
							for (const c in o) {
								if (U(c)) continue;
								const a = o[c],
									u = n[c];
								a !== u && "value" !== c && r(e, c, u, a, l, t.children, s, i, q)
							}
							"value" in o && r(e, "value", n.value, o.value)
						}
					}, A = (e, t, o, r, s, l, c, a, u) => {
						const p = t.el = e ? e.el : i(""),
							f = t.anchor = e ? e.anchor : i("");
						let {
							patchFlag: d,
							dynamicChildren: h,
							slotScopeIds: m
						} = t;
						m && (a = a ? a.concat(m) : m), null == e ? (n(p, o, r), n(f, o, r), w(t.children, o, f, s, l, c,
							a, u)) : d > 0 && 64 & d && h && e.dynamicChildren ? (E(e.dynamicChildren, h, o, s, l, c,
							a), (null != t.key || s && t === s.subTree) && ur(e, t, !0)) : I(e, t, o, f, s, l, c, a,
							u)
					}, F = (e, t, n, o, r, s, i, l, c) => {
						t.slotScopeIds = l, null == e ? 512 & t.shapeFlag ? r.ctx.activate(t, n, o, i, c) : P(t, n, o, r,
							s, i, c) : R(e, t, c)
					}, P = (e, t, n, o, r, s, i) => {
						const l = e.component = function(e, t, n) {
							const o = e.type,
								r = (t ? t.appContext : e.appContext) || Wr,
								s = {
									uid: zr++,
									vnode: e,
									type: o,
									parent: t,
									appContext: r,
									root: null,
									next: null,
									subTree: null,
									effect: null,
									update: null,
									scope: new oe(!0),
									render: null,
									proxy: null,
									exposed: null,
									exposeProxy: null,
									withProxy: null,
									provides: t ? t.provides : Object.create(r.provides),
									accessCache: null,
									renderCache: [],
									components: null,
									directives: null,
									propsOptions: Uo(o, r),
									emitsOptions: un(o, r),
									emit: null,
									emitted: null,
									propsDefaults: v,
									inheritAttrs: o.inheritAttrs,
									ctx: v,
									data: v,
									props: v,
									attrs: v,
									slots: v,
									refs: v,
									setupState: v,
									setupContext: null,
									suspense: n,
									suspenseId: n ? n.pendingId : 0,
									asyncDep: null,
									asyncResolved: !1,
									isMounted: !1,
									isUnmounted: !1,
									isDeactivated: !1,
									bc: null,
									c: null,
									bm: null,
									m: null,
									bu: null,
									u: null,
									um: null,
									bum: null,
									da: null,
									a: null,
									rtg: null,
									rtc: null,
									ec: null,
									sp: null
								};
							s.ctx = {
								_: s
							}, s.root = t ? t.root : s, s.emit = an.bind(null, s), e.ce && e.ce(s);
							return s
						}(e, o, r);
						if (Jn(e) && (l.ctx.renderer = X), function(e, t = !1) {
								Xr = t;
								const {
									props: n,
									children: o
								} = e.vnode, r = Zr(e);
								(function(e, t, n, o = !1) {
									const r = {},
										s = {};
									Q(s, Fr, 1), e.propsDefaults = Object.create(null), Lo(e, t, r, s);
									for (const i in e.propsOptions[0]) i in r || (r[i] = void 0);
									e.props = n ? o ? r : mt(r) : e.type.props ? r : s, e.attrs = s
								})(e, n, r, t), ((e, t) => {
									if (32 & e.vnode.shapeFlag) {
										const n = t._;
										n ? (e.slots = xt(t), Q(t, "_", n)) : Jo(t, e.slots = {})
									} else e.slots = {}, t && Zo(e, t);
									Q(e.slots, Fr, 1)
								})(e, o);
								const s = r ? function(e, t) {
									const n = e.type;
									e.accessCache = Object.create(null), e.proxy = Ct(new Proxy(e.ctx, To));
									const {
										setup: o
									} = n;
									if (o) {
										const n = e.setupContext = o.length > 1 ? os(e) : null;
										qr(e), _e();
										const r = jt(o, e, 0, [e.props, n]);
										if (be(), Jr(), V(r)) {
											if (r.then(Jr, Jr), t) return r.then((n => {
												es(e, n, t)
											})).catch((t => {
												Dt(t, e, 0)
											}));
											e.asyncDep = r
										} else es(e, r, t)
									} else ns(e, t)
								}(e, t) : void 0;
								Xr = !1
							}(l), l.asyncDep) {
							if (r && r.registerDep(l, $), !e.el) {
								const e = l.subTree = Mr(_r);
								g(null, e, t, n)
							}
						} else $(l, e, t, n, r, s, i)
					}, R = (e, t, n) => {
						const o = t.component = e.component;
						if (function(e, t, n) {
								const {
									props: o,
									children: r,
									component: s
								} = e, {
									props: i,
									children: l,
									patchFlag: c
								} = t, a = s.emitsOptions;
								if (t.dirs || t.transition) return !0;
								if (!(n && c >= 0)) return !(!r && !l || l && l.$stable) || o !== i && (o ? !i || _n(o,
									i, a) : !!i);
								if (1024 & c) return !0;
								if (16 & c) return o ? _n(o, i, a) : !!i;
								if (8 & c) {
									const e = t.dynamicProps;
									for (let t = 0; t < e.length; t++) {
										const n = e[t];
										if (i[n] !== o[n] && !pn(a, n)) return !0
									}
								}
								return !1
							}(e, t, n)) {
							if (o.asyncDep && !o.asyncResolved) return void M(o, t, n);
							o.next = t,
								function(e) {
									const t = zt.indexOf(e);
									t > Kt && zt.splice(t, 1)
								}(o.update), o.update()
						} else t.el = e.el, o.vnode = t
					}, $ = (e, t, n, o, r, s, i) => {
						const l = e.effect = new me((() => {
								if (e.isMounted) {
									let t, {
											next: n,
											bu: o,
											u: l,
											parent: c,
											vnode: a
										} = e,
										p = n;
									ar(e, !1), n ? (n.el = a.el, M(e, n, i)) : n = a, o && Y(o), (t = n.props &&
										n.props.onVnodeBeforeUpdate) && Hr(t, c, n, a), ar(e, !0);
									const f = gn(e),
										d = e.subTree;
									e.subTree = f, h(d, f, u(d.el), J(d), e, r, s), n.el = f.el, null === p &&
										bn(e, f.el), l && sr(l, r), (t = n.props && n.props.onVnodeUpdated) &&
										sr((() => Hr(t, c, n, a)), r)
								} else {
									let i;
									const {
										el: l,
										props: c
									} = t, {
										bm: a,
										m: u,
										parent: p
									} = e, f = Gn(t);
									if (ar(e, !1), a && Y(a), !f && (i = c && c.onVnodeBeforeMount) && Hr(i, p,
											t), ar(e, !0), l && ne) {
										const n = () => {
											e.subTree = gn(e), ne(l, e.subTree, e, r, null)
										};
										f ? t.type.__asyncLoader().then((() => !e.isUnmounted && n())) : n()
									} else {
										const i = e.subTree = gn(e);
										h(null, i, n, o, e, r, s), t.el = i.el
									}
									if (u && sr(u, r), !f && (i = c && c.onVnodeMounted)) {
										const e = t;
										sr((() => Hr(i, p, e)), r)
									}(256 & t.shapeFlag || p && Gn(p.vnode) && 256 & p.vnode.shapeFlag) && e.a &&
										sr(e.a, r), e.isMounted = !0, t = n = o = null
								}
							}), (() => Xt(c)), e.scope),
							c = e.update = () => l.run();
						c.id = e.uid, ar(e, !0), c()
					}, M = (e, t, n) => {
						t.component = e;
						const o = e.vnode.props;
						e.vnode = t, e.next = null,
							function(e, t, n, o) {
								const {
									props: r,
									attrs: s,
									vnode: {
										patchFlag: i
									}
								} = e, l = xt(r), [c] = e.propsOptions;
								let a = !1;
								if (!(o || i > 0) || 16 & i) {
									let o;
									Lo(e, t, r, s) && (a = !0);
									for (const s in l) t && (N(t, s) || (o = G(s)) !== s && N(t, o)) || (c ? !n ||
										void 0 === n[s] && void 0 === n[o] || (r[s] = jo(c, l, s, void 0, e, !0)) :
										delete r[s]);
									if (s !== l)
										for (const e in s) t && N(t, e) || (delete s[e], a = !0)
								} else if (8 & i) {
									const n = e.vnode.dynamicProps;
									for (let o = 0; o < n.length; o++) {
										let i = n[o];
										if (pn(e.emitsOptions, i)) continue;
										const u = t[i];
										if (c)
											if (N(s, i)) u !== s[i] && (s[i] = u, a = !0);
											else {
												const t = z(i);
												r[t] = jo(c, l, t, u, e, !1)
											}
										else u !== s[i] && (s[i] = u, a = !0)
									}
								}
								a && Ce(e, "set", "$attrs")
							}(e, t.props, o, n), ((e, t, n) => {
								const {
									vnode: o,
									slots: r
								} = e;
								let s = !0,
									i = v;
								if (32 & o.shapeFlag) {
									const e = t._;
									e ? n && 1 === e ? s = !1 : (k(r, t), n || 1 !== e || delete r._) : (s = !t
										.$stable, Jo(t, r)), i = t
								} else t && (Zo(e, t), i = {
									default: 1
								});
								if (s)
									for (const l in r) Ko(l) || l in i || delete r[l]
							})(e, t.children, n), _e(), nn(), be()
					}, I = (e, t, n, o, r, s, i, l, c = !1) => {
						const u = e && e.children,
							p = e ? e.shapeFlag : 0,
							f = t.children,
							{
								patchFlag: d,
								shapeFlag: h
							} = t;
						if (d > 0) {
							if (128 & d) return void L(u, f, n, o, r, s, i, l, c);
							if (256 & d) return void B(u, f, n, o, r, s, i, l, c)
						}
						8 & h ? (16 & p && q(u, r, s), f !== u && a(n, f)) : 16 & p ? 16 & h ? L(u, f, n, o, r, s, i, l,
							c) : q(u, r, s, !0) : (8 & p && a(n, ""), 16 & h && w(f, n, o, r, s, i, l, c))
					}, B = (e, t, n, o, r, s, i, l, c) => {
						const a = (e = e || y).length,
							u = (t = t || y).length,
							p = Math.min(a, u);
						let f;
						for (f = 0; f < p; f++) {
							const o = t[f] = c ? jr(t[f]) : Lr(t[f]);
							h(e[f], o, n, null, r, s, i, l, c)
						}
						a > u ? q(e, r, s, !0, !1, p) : w(t, n, o, r, s, i, l, c, p)
					}, L = (e, t, n, o, r, s, i, l, c) => {
						let a = 0;
						const u = t.length;
						let p = e.length - 1,
							f = u - 1;
						for (; a <= p && a <= f;) {
							const o = e[a],
								u = t[a] = c ? jr(t[a]) : Lr(t[a]);
							if (!Ar(o, u)) break;
							h(o, u, n, null, r, s, i, l, c), a++
						}
						for (; a <= p && a <= f;) {
							const o = e[p],
								a = t[f] = c ? jr(t[f]) : Lr(t[f]);
							if (!Ar(o, a)) break;
							h(o, a, n, null, r, s, i, l, c), p--, f--
						}
						if (a > p) {
							if (a <= f) {
								const e = f + 1,
									p = e < u ? t[e].el : o;
								for (; a <= f;) h(null, t[a] = c ? jr(t[a]) : Lr(t[a]), n, p, r, s, i, l, c), a++
							}
						} else if (a > f)
							for (; a <= p;) D(e[a], r, s, !0), a++;
						else {
							const d = a,
								m = a,
								g = new Map;
							for (a = m; a <= f; a++) {
								const e = t[a] = c ? jr(t[a]) : Lr(t[a]);
								null != e.key && g.set(e.key, a)
							}
							let v, _ = 0;
							const b = f - m + 1;
							let S = !1,
								x = 0;
							const C = new Array(b);
							for (a = 0; a < b; a++) C[a] = 0;
							for (a = d; a <= p; a++) {
								const o = e[a];
								if (_ >= b) {
									D(o, r, s, !0);
									continue
								}
								let u;
								if (null != o.key) u = g.get(o.key);
								else
									for (v = m; v <= f; v++)
										if (0 === C[v - m] && Ar(o, t[v])) {
											u = v;
											break
										} void 0 === u ? D(o, r, s, !0) : (C[u - m] = a + 1, u >= x ? x = u : S = !0, h(
									o, t[u], n, null, r, s, i, l, c), _++)
							}
							const k = S ? function(e) {
								const t = e.slice(),
									n = [0];
								let o, r, s, i, l;
								const c = e.length;
								for (o = 0; o < c; o++) {
									const c = e[o];
									if (0 !== c) {
										if (r = n[n.length - 1], e[r] < c) {
											t[o] = r, n.push(o);
											continue
										}
										for (s = 0, i = n.length - 1; s < i;) l = s + i >> 1, e[n[l]] < c ? s = l +
											1 : i = l;
										c < e[n[s]] && (s > 0 && (t[o] = n[s - 1]), n[s] = o)
									}
								}
								s = n.length, i = n[s - 1];
								for (; s-- > 0;) n[s] = i, i = t[i];
								return n
							}(C) : y;
							for (v = k.length - 1, a = b - 1; a >= 0; a--) {
								const e = m + a,
									p = t[e],
									f = e + 1 < u ? t[e + 1].el : o;
								0 === C[a] ? h(null, p, n, f, r, s, i, l, c) : S && (v < 0 || a !== k[v] ? j(p, n, f,
									2) : v--)
							}
						}
					}, j = (e, t, o, r, s = null) => {
						const {
							el: i,
							type: l,
							transition: c,
							children: a,
							shapeFlag: u
						} = e;
						if (6 & u) return void j(e.component.subTree, t, o, r);
						if (128 & u) return void e.suspense.move(t, o, r);
						if (64 & u) return void l.move(e, t, o, X);
						if (l === vr) {
							n(i, t, o);
							for (let e = 0; e < a.length; e++) j(a[e], t, o, r);
							return void n(e.anchor, t, o)
						}
						if (l === br) return void(({
							el: e,
							anchor: t
						}, o, r) => {
							let s;
							for (; e && e !== t;) s = p(e), n(e, o, r), e = s;
							n(t, o, r)
						})(e, t, o);
						if (2 !== r && 1 & u && c)
							if (0 === r) c.beforeEnter(i), n(i, t, o), sr((() => c.enter(i)), s);
							else {
								const {
									leave: e,
									delayLeave: r,
									afterLeave: s
								} = c, l = () => n(i, t, o), a = () => {
									e(i, (() => {
										l(), s && s()
									}))
								};
								r ? r(i, l, a) : a()
							}
						else n(i, t, o)
					}, D = (e, t, n, o = !1, r = !1) => {
						const {
							type: s,
							props: i,
							ref: l,
							children: c,
							dynamicChildren: a,
							shapeFlag: u,
							patchFlag: p,
							dirs: f
						} = e;
						if (null != l && er(l, null, n, e, !0), 256 & u) return void t.ctx.deactivate(e);
						const d = 1 & u && f,
							h = !Gn(e);
						let m;
						if (h && (m = i && i.onVnodeBeforeUnmount) && Hr(m, t, e), 6 & u) K(e.component, n, o);
						else {
							if (128 & u) return void e.suspense.unmount(n, o);
							d && vo(e, null, t, "beforeUnmount"), 64 & u ? e.type.remove(e, t, n, r, X, o) : a && (s !==
								vr || p > 0 && 64 & p) ? q(a, t, n, !1, !0) : (s === vr && 384 & p || !r && 16 &
								u) && q(c, t, n), o && H(e)
						}(h && (m = i && i.onVnodeUnmounted) || d) && sr((() => {
							m && Hr(m, t, e), d && vo(e, null, t, "unmounted")
						}), n)
					}, H = e => {
						const {
							type: t,
							el: n,
							anchor: r,
							transition: s
						} = e;
						if (t === vr) return void W(n, r);
						if (t === br) return void(({
							el: e,
							anchor: t
						}) => {
							let n;
							for (; e && e !== t;) n = p(e), o(e), e = n;
							o(t)
						})(e);
						const i = () => {
							o(n), s && !s.persisted && s.afterLeave && s.afterLeave()
						};
						if (1 & e.shapeFlag && s && !s.persisted) {
							const {
								leave: t,
								delayLeave: o
							} = s, r = () => t(n, i);
							o ? o(e.el, i, r) : r()
						} else i()
					}, W = (e, t) => {
						let n;
						for (; e !== t;) n = p(e), o(e), e = n;
						o(t)
					}, K = (e, t, n) => {
						const {
							bum: o,
							scope: r,
							update: s,
							subTree: i,
							um: l
						} = e;
						o && Y(o), r.stop(), s && (s.active = !1, D(i, e, t, n)), l && sr(l, t), sr((() => {
								e.isUnmounted = !0
							}), t), t && t.pendingBranch && !t.isUnmounted && e.asyncDep && !e.asyncResolved && e
							.suspenseId === t.pendingId && (t.deps--, 0 === t.deps && t.resolve())
					}, q = (e, t, n, o = !1, r = !1, s = 0) => {
						for (let i = s; i < e.length; i++) D(e[i], t, n, o, r)
					}, J = e => 6 & e.shapeFlag ? J(e.component.subTree) : 128 & e.shapeFlag ? e.suspense.next() : p(e
						.anchor || e.el), Z = (e, t, n) => {
						null == e ? t._vnode && D(t._vnode, null, null, !0) : h(t._vnode || null, e, t, null, null, null,
							n), nn(), on(), t._vnode = e
					}, X = {
						p: h,
						um: D,
						m: j,
						r: H,
						mt: P,
						mc: w,
						pc: I,
						pbc: E,
						n: J,
						o: e
					};
					let ee, ne;
					return t && ([ee, ne] = t(X)), {
						render: Z,
						hydrate: ee,
						createApp: Xo(Z, ee)
					}
				}

				function ar({
					effect: e,
					update: t
				}, n) {
					e.allowRecurse = t.allowRecurse = n
				}

				function ur(e, t, n = !1) {
					const o = e.children,
						r = t.children;
					if (E(o) && E(r))
						for (let s = 0; s < o.length; s++) {
							const e = o[s];
							let t = r[s];
							1 & t.shapeFlag && !t.dynamicChildren && ((t.patchFlag <= 0 || 32 === t.patchFlag) && (t = r[s] =
								jr(r[s]), t.el = e.el), n || ur(e, t)), t.type === yr && (t.el = e.el)
						}
				}
				const pr = e => e && (e.disabled || "" === e.disabled),
					fr = e => "undefined" != typeof SVGElement && e instanceof SVGElement,
					dr = (e, t) => {
						const n = e && e.to;
						if (R(n)) {
							if (t) {
								return t(n)
							}
							return null
						}
						return n
					};

				function hr(e, t, n, {
					o: {
						insert: o
					},
					m: r
				}, s = 2) {
					0 === s && o(e.targetAnchor, t, n);
					const {
						el: i,
						anchor: l,
						shapeFlag: c,
						children: a,
						props: u
					} = e, p = 2 === s;
					if (p && o(i, t, n), (!p || pr(u)) && 16 & c)
						for (let f = 0; f < a.length; f++) r(a[f], t, n, 2);
					p && o(l, t, n)
				}
				const mr = {
					__isTeleport: !0,
					process(e, t, n, o, r, s, i, l, c, a) {
						const {
							mc: u,
							pc: p,
							pbc: f,
							o: {
								insert: d,
								querySelector: h,
								createText: m
							}
						} = a, g = pr(t.props);
						let {
							shapeFlag: v,
							children: y,
							dynamicChildren: _
						} = t;
						if (null == e) {
							const e = t.el = m(""),
								a = t.anchor = m("");
							d(e, n, o), d(a, n, o);
							const p = t.target = dr(t.props, h),
								f = t.targetAnchor = m("");
							p && (d(f, p), i = i || fr(p));
							const _ = (e, t) => {
								16 & v && u(y, e, t, r, s, i, l, c)
							};
							g ? _(n, a) : p && _(p, f)
						} else {
							t.el = e.el;
							const o = t.anchor = e.anchor,
								u = t.target = e.target,
								d = t.targetAnchor = e.targetAnchor,
								m = pr(e.props),
								v = m ? n : u,
								y = m ? o : d;
							if (i = i || fr(u), _ ? (f(e.dynamicChildren, _, v, r, s, i, l), ur(e, t, !0)) : c || p(e, t,
									v, y, r, s, i, l, !1), g) m || hr(t, n, o, a, 1);
							else if ((t.props && t.props.to) !== (e.props && e.props.to)) {
								const e = t.target = dr(t.props, h);
								e && hr(t, e, null, a, 0)
							} else m && hr(t, u, d, a, 1)
						}
						gr(t)
					},
					remove(e, t, n, o, {
						um: r,
						o: {
							remove: s
						}
					}, i) {
						const {
							shapeFlag: l,
							children: c,
							anchor: a,
							targetAnchor: u,
							target: p,
							props: f
						} = e;
						if (p && s(u), (i || !pr(f)) && (s(a), 16 & l))
							for (let d = 0; d < c.length; d++) {
								const e = c[d];
								r(e, t, n, !0, !!e.dynamicChildren)
							}
					},
					move: hr,
					hydrate: function(e, t, n, o, r, s, {
						o: {
							nextSibling: i,
							parentNode: l,
							querySelector: c
						}
					}, a) {
						const u = t.target = dr(t.props, c);
						if (u) {
							const c = u._lpa || u.firstChild;
							if (16 & t.shapeFlag)
								if (pr(t.props)) t.anchor = a(i(e), t, l(e), n, o, r, s), t.targetAnchor = c;
								else {
									t.anchor = i(e);
									let l = c;
									for (; l;)
										if (l = i(l), l && 8 === l.nodeType && "teleport anchor" === l.data) {
											t.targetAnchor = l, u._lpa = t.targetAnchor && i(t.targetAnchor);
											break
										} a(c, t, u, n, o, r, s)
								} gr(t)
						}
						return t.anchor && i(t.anchor)
					}
				};

				function gr(e) {
					const t = e.ctx;
					if (t && t.ut) {
						let n = e.children[0].el;
						for (; n !== e.targetAnchor;) 1 === n.nodeType && n.setAttribute("data-v-owner", t.uid), n = n
							.nextSibling;
						t.ut()
					}
				}
				const vr = Symbol(void 0),
					yr = Symbol(void 0),
					_r = Symbol(void 0),
					br = Symbol(void 0),
					Sr = [];
				let xr = null;

				function Cr(e = !1) {
					Sr.push(xr = e ? null : [])
				}

				function kr() {
					Sr.pop(), xr = Sr[Sr.length - 1] || null
				}
				let wr = 1;

				function Tr(e) {
					wr += e
				}

				function Nr(e) {
					return e.dynamicChildren = wr > 0 ? xr || y : null, kr(), wr > 0 && xr && xr.push(e), e
				}

				function Er(e, t, n, o, r) {
					return Nr(Mr(e, t, n, o, r, !0))
				}

				function Or(e) {
					return !!e && !0 === e.__v_isVNode
				}

				function Ar(e, t) {
					return e.type === t.type && e.key === t.key
				}
				const Fr = "__vInternal",
					Pr = ({
						key: e
					}) => null != e ? e : null,
					Rr = ({
						ref: e,
						ref_key: t,
						ref_for: n
					}) => null != e ? R(e) || Et(e) || P(e) ? {
						i: fn,
						r: e,
						k: t,
						f: !!n
					} : e : null;

				function $r(e, t = null, n = null, o = 0, r = null, s = (e === vr ? 0 : 1), i = !1, l = !1) {
					const c = {
						__v_isVNode: !0,
						__v_skip: !0,
						type: e,
						props: t,
						key: t && Pr(t),
						ref: t && Rr(t),
						scopeId: dn,
						slotScopeIds: null,
						children: n,
						component: null,
						suspense: null,
						ssContent: null,
						ssFallback: null,
						dirs: null,
						transition: null,
						el: null,
						anchor: null,
						target: null,
						targetAnchor: null,
						staticCount: 0,
						shapeFlag: s,
						patchFlag: o,
						dynamicProps: r,
						dynamicChildren: null,
						appContext: null,
						ctx: fn
					};
					return l ? (Ur(c, n), 128 & s && e.normalize(c)) : n && (c.shapeFlag |= R(n) ? 8 : 16), wr > 0 && !i &&
						xr && (c.patchFlag > 0 || 6 & s) && 32 !== c.patchFlag && xr.push(c), c
				}
				const Mr = function(e, t = null, n = null, r = 0, s = null, i = !1) {
					e && e !== _o || (e = _r);
					if (Or(e)) {
						const o = Ir(e, t, !0);
						return n && Ur(o, n), wr > 0 && !i && xr && (6 & o.shapeFlag ? xr[xr.indexOf(e)] = o : xr.push(
							o)), o.patchFlag |= -2, o
					}
					l = e, P(l) && "__vccOpts" in l && (e = e.__vccOpts);
					var l;
					if (t) {
						t = Vr(t);
						let {
							class: e,
							style: n
						} = t;
						e && !R(e) && (t.class = c(e)), M(n) && (St(n) && !E(n) && (n = k({}, n)), t.style = o(n))
					}
					const a = R(e) ? 1 : Sn(e) ? 128 : (e => e.__isTeleport)(e) ? 64 : M(e) ? 4 : P(e) ? 2 : 0;
					return $r(e, t, n, r, s, a, i, !0)
				};

				function Vr(e) {
					return e ? St(e) || Fr in e ? k({}, e) : e : null
				}

				function Ir(e, t, n = !1) {
					const {
						props: o,
						ref: r,
						patchFlag: s,
						children: i
					} = e, l = t ? Dr(o || {}, t) : o;
					return {
						__v_isVNode: !0,
						__v_skip: !0,
						type: e.type,
						props: l,
						key: l && Pr(l),
						ref: t && t.ref ? n && r ? E(r) ? r.concat(Rr(t)) : [r, Rr(t)] : Rr(t) : r,
						scopeId: e.scopeId,
						slotScopeIds: e.slotScopeIds,
						children: i,
						target: e.target,
						targetAnchor: e.targetAnchor,
						staticCount: e.staticCount,
						shapeFlag: e.shapeFlag,
						patchFlag: t && e.type !== vr ? -1 === s ? 16 : 16 | s : s,
						dynamicProps: e.dynamicProps,
						dynamicChildren: e.dynamicChildren,
						appContext: e.appContext,
						dirs: e.dirs,
						transition: e.transition,
						component: e.component,
						suspense: e.suspense,
						ssContent: e.ssContent && Ir(e.ssContent),
						ssFallback: e.ssFallback && Ir(e.ssFallback),
						el: e.el,
						anchor: e.anchor,
						ctx: e.ctx,
						ce: e.ce
					}
				}

				function Br(e = " ", t = 0) {
					return Mr(yr, null, e, t)
				}

				function Lr(e) {
					return null == e || "boolean" == typeof e ? Mr(_r) : E(e) ? Mr(vr, null, e.slice()) : "object" ==
						typeof e ? jr(e) : Mr(yr, null, String(e))
				}

				function jr(e) {
					return null === e.el && -1 !== e.patchFlag || e.memo ? e : Ir(e)
				}

				function Ur(e, t) {
					let n = 0;
					const {
						shapeFlag: o
					} = e;
					if (null == t) t = null;
					else if (E(t)) n = 16;
					else if ("object" == typeof t) {
						if (65 & o) {
							const n = t.default;
							return void(n && (n._c && (n._d = !1), Ur(e, n()), n._c && (n._d = !0)))
						} {
							n = 32;
							const o = t._;
							o || Fr in t ? 3 === o && fn && (1 === fn.slots._ ? t._ = 1 : (t._ = 2, e.patchFlag |= 1024)) : t
								._ctx = fn
						}
					} else P(t) ? (t = {
						default: t,
						_ctx: fn
					}, n = 32) : (t = String(t), 64 & o ? (n = 16, t = [Br(t)]) : n = 8);
					e.children = t, e.shapeFlag |= n
				}

				function Dr(...e) {
					const t = {};
					for (let n = 0; n < e.length; n++) {
						const r = e[n];
						for (const e in r)
							if ("class" === e) t.class !== r.class && (t.class = c([t.class, r.class]));
							else if ("style" === e) t.style = o([t.style, r.style]);
						else if (x(e)) {
							const n = t[e],
								o = r[e];
							!o || n === o || E(n) && n.includes(o) || (t[e] = n ? [].concat(n, o) : o)
						} else "" !== e && (t[e] = r[e])
					}
					return t
				}

				function Hr(e, t, n, o = null) {
					Ut(e, t, 7, [n, o])
				}
				const Wr = Yo();
				let zr = 0;
				let Kr = null;
				const Gr = () => Kr || fn,
					qr = e => {
						Kr = e, e.scope.on()
					},
					Jr = () => {
						Kr && Kr.scope.off(), Kr = null
					};

				function Zr(e) {
					return 4 & e.vnode.shapeFlag
				}
				let Yr, Qr, Xr = !1;

				function es(e, t, n) {
					P(t) ? e.render = t : M(t) && (e.setupState = $t(t)), ns(e, n)
				}

				function ts(e) {
					Yr = e, Qr = e => {
						e.render._rc && (e.withProxy = new Proxy(e.ctx, No))
					}
				}

				function ns(e, t, n) {
					const o = e.type;
					if (!e.render) {
						if (!t && Yr && !o.render) {
							const t = o.template || Po(e).template;
							if (t) {
								const {
									isCustomElement: n,
									compilerOptions: r
								} = e.appContext.config, {
									delimiters: s,
									compilerOptions: i
								} = o, l = k(k({
									isCustomElement: n,
									delimiters: s
								}, r), i);
								o.render = Yr(t, l)
							}
						}
						e.render = o.render || _, Qr && Qr(e)
					}
					qr(e), _e(), Oo(e), be(), Jr()
				}

				function os(e) {
					const t = t => {
						e.exposed = t || {}
					};
					let n;
					return {
						get attrs() {
							return n || (n = function(e) {
								return new Proxy(e.attrs, {
									get: (t, n) => (Se(e, 0, "$attrs"), t[n])
								})
							}(e))
						},
						slots: e.slots,
						emit: e.emit,
						expose: t
					}
				}

				function rs(e) {
					if (e.exposed) return e.exposeProxy || (e.exposeProxy = new Proxy($t(Ct(e.exposed)), {
						get: (t, n) => n in t ? t[n] : n in ko ? ko[n](e) : void 0,
						has: (e, t) => t in e || t in ko
					}))
				}

				function ss(e, t = !0) {
					return P(e) ? e.displayName || e.name : e.name || t && e.__name
				}
				const is = (e, t) => function(e, t, n = !1) {
					let o, r;
					const s = P(e);
					return s ? (o = e, r = _) : (o = e.get, r = e.set), new Lt(o, r, s || !r, n)
				}(e, 0, Xr);

				function ls() {
					const e = Gr();
					return e.setupContext || (e.setupContext = os(e))
				}

				function cs(e, t, n) {
					const o = arguments.length;
					return 2 === o ? M(t) && !E(t) ? Or(t) ? Mr(e, null, [t]) : Mr(e, t) : Mr(e, null, t) : (o > 3 ? n =
						Array.prototype.slice.call(arguments, 2) : 3 === o && Or(n) && (n = [n]), Mr(e, t, n))
				}
				const as = Symbol("");

				function us(e, t) {
					const n = e.memo;
					if (n.length != t.length) return !1;
					for (let o = 0; o < n.length; o++)
						if (Z(n[o], t[o])) return !1;
					return wr > 0 && xr && xr.push(e), !0
				}
				const ps = "3.2.47",
					fs = "undefined" != typeof document ? document : null,
					ds = fs && fs.createElement("template"),
					hs = {
						insert: (e, t, n) => {
							t.insertBefore(e, n || null)
						},
						remove: e => {
							const t = e.parentNode;
							t && t.removeChild(e)
						},
						createElement: (e, t, n, o) => {
							const r = t ? fs.createElementNS("http://www.w3.org/2000/svg", e) : fs.createElement(e, n ? {
								is: n
							} : void 0);
							return "select" === e && o && null != o.multiple && r.setAttribute("multiple", o.multiple), r
						},
						createText: e => fs.createTextNode(e),
						createComment: e => fs.createComment(e),
						setText: (e, t) => {
							e.nodeValue = t
						},
						setElementText: (e, t) => {
							e.textContent = t
						},
						parentNode: e => e.parentNode,
						nextSibling: e => e.nextSibling,
						querySelector: e => fs.querySelector(e),
						setScopeId(e, t) {
							e.setAttribute(t, "")
						},
						insertStaticContent(e, t, n, o, r, s) {
							const i = n ? n.previousSibling : t.lastChild;
							if (r && (r === s || r.nextSibling))
								for (; t.insertBefore(r.cloneNode(!0), n), r !== s && (r = r.nextSibling););
							else {
								ds.innerHTML = o ? `<svg>${e}</svg>` : e;
								const r = ds.content;
								if (o) {
									const e = r.firstChild;
									for (; e.firstChild;) r.appendChild(e.firstChild);
									r.removeChild(e)
								}
								t.insertBefore(r, n)
							}
							return [i ? i.nextSibling : t.firstChild, n ? n.previousSibling : t.lastChild]
						}
					};
				const ms = /\s*!important$/;

				function gs(e, t, n) {
					if (E(n)) n.forEach((n => gs(e, t, n)));
					else if (null == n && (n = ""), t.startsWith("--")) e.setProperty(t, n);
					else {
						const o = function(e, t) {
							const n = ys[t];
							if (n) return n;
							let o = z(t);
							if ("filter" !== o && o in e) return ys[t] = o;
							o = q(o);
							for (let r = 0; r < vs.length; r++) {
								const n = vs[r] + o;
								if (n in e) return ys[t] = n
							}
							return t
						}(e, t);
						ms.test(n) ? e.setProperty(G(o), n.replace(ms, ""), "important") : e[o] = n
					}
				}
				const vs = ["Webkit", "Moz", "ms"],
					ys = {};
				const _s = "http://www.w3.org/1999/xlink";

				function bs(e, t, n, o) {
					e.addEventListener(t, n, o)
				}

				function Ss(e, t, n, o, r = null) {
					const s = e._vei || (e._vei = {}),
						i = s[t];
					if (o && i) i.value = o;
					else {
						const [n, l] = function(e) {
							let t;
							if (xs.test(e)) {
								let n;
								for (t = {}; n = e.match(xs);) e = e.slice(0, e.length - n[0].length), t[n[0]
									.toLowerCase()] = !0
							}
							return [":" === e[2] ? e.slice(3) : G(e.slice(2)), t]
						}(t);
						if (o) {
							const i = s[t] = function(e, t) {
								const n = e => {
									if (e._vts) {
										if (e._vts <= n.attached) return
									} else e._vts = Date.now();
									Ut(function(e, t) {
										if (E(t)) {
											const n = e.stopImmediatePropagation;
											return e.stopImmediatePropagation = () => {
												n.call(e), e._stopped = !0
											}, t.map((e => t => !t._stopped && e && e(t)))
										}
										return t
									}(e, n.value), t, 5, [e])
								};
								return n.value = e, n.attached = (() => Cs || (ks.then((() => Cs = 0)), Cs = Date.now()))
									(), n
							}(o, r);
							bs(e, n, i, l)
						} else i && (! function(e, t, n, o) {
							e.removeEventListener(t, n, o)
						}(e, n, i, l), s[t] = void 0)
					}
				}
				const xs = /(?:Once|Passive|Capture)$/;
				let Cs = 0;
				const ks = Promise.resolve();
				const ws = /^on[a-z]/;

				function Ts(e, t) {
					const n = Kn(e);
					class o extends Es {
						constructor(e) {
							super(n, e, t)
						}
					}
					return o.def = n, o
				}
				const Ns = "undefined" != typeof HTMLElement ? HTMLElement : class {};
				class Es extends Ns {
					constructor(e, t = {}, n) {
						super(), this._def = e, this._props = t, this._instance = null, this._connected = !1, this
							._resolved = !1, this._numberProps = null, this.shadowRoot && n ? n(this._createVNode(), this
								.shadowRoot) : (this.attachShadow({
								mode: "open"
							}), this._def.__asyncLoader || this._resolveProps(this._def))
					}
					connectedCallback() {
						this._connected = !0, this._instance || (this._resolved ? this._update() : this._resolveDef())
					}
					disconnectedCallback() {
						this._connected = !1, Qt((() => {
							this._connected || (wi(null, this.shadowRoot), this._instance = null)
						}))
					}
					_resolveDef() {
						this._resolved = !0;
						for (let n = 0; n < this.attributes.length; n++) this._setAttr(this.attributes[n].name);
						new MutationObserver((e => {
							for (const t of e) this._setAttr(t.attributeName)
						})).observe(this, {
							attributes: !0
						});
						const e = (e, t = !1) => {
								const {
									props: n,
									styles: o
								} = e;
								let r;
								if (n && !E(n))
									for (const s in n) {
										const e = n[s];
										(e === Number || e && e.type === Number) && (s in this._props && (this._props[
											s] = ee(this._props[s])), (r || (r = Object.create(null)))[z(s)] = !0)
									}
								this._numberProps = r, t && this._resolveProps(e), this._applyStyles(o), this._update()
							},
							t = this._def.__asyncLoader;
						t ? t().then((t => e(t, !0))) : e(this._def)
					}
					_resolveProps(e) {
						const {
							props: t
						} = e, n = E(t) ? t : Object.keys(t || {});
						for (const o of Object.keys(this)) "_" !== o[0] && n.includes(o) && this._setProp(o, this[o], !0,
							!1);
						for (const o of n.map(z)) Object.defineProperty(this, o, {
							get() {
								return this._getProp(o)
							},
							set(e) {
								this._setProp(o, e)
							}
						})
					}
					_setAttr(e) {
						let t = this.getAttribute(e);
						const n = z(e);
						this._numberProps && this._numberProps[n] && (t = ee(t)), this._setProp(n, t, !1)
					}
					_getProp(e) {
						return this._props[e]
					}
					_setProp(e, t, n = !0, o = !0) {
						t !== this._props[e] && (this._props[e] = t, o && this._instance && this._update(), n && (!0 ===
							t ? this.setAttribute(G(e), "") : "string" == typeof t || "number" == typeof t ? this
							.setAttribute(G(e), t + "") : t || this.removeAttribute(G(e))))
					}
					_update() {
						wi(this._createVNode(), this.shadowRoot)
					}
					_createVNode() {
						const e = Mr(this._def, k({}, this._props));
						return this._instance || (e.ce = e => {
							this._instance = e, e.isCE = !0;
							const t = (e, t) => {
								this.dispatchEvent(new CustomEvent(e, {
									detail: t
								}))
							};
							e.emit = (e, ...n) => {
								t(e, n), G(e) !== e && t(G(e), n)
							};
							let n = this;
							for (; n = n && (n.parentNode || n.host);)
								if (n instanceof Es) {
									e.parent = n._instance, e.provides = n._instance.provides;
									break
								}
						}), e
					}
					_applyStyles(e) {
						e && e.forEach((e => {
							const t = document.createElement("style");
							t.textContent = e, this.shadowRoot.appendChild(t)
						}))
					}
				}

				function Os(e, t) {
					if (128 & e.shapeFlag) {
						const n = e.suspense;
						e = n.activeBranch, n.pendingBranch && !n.isHydrating && n.effects.push((() => {
							Os(n.activeBranch, t)
						}))
					}
					for (; e.component;) e = e.component.subTree;
					if (1 & e.shapeFlag && e.el) As(e.el, t);
					else if (e.type === vr) e.children.forEach((e => Os(e, t)));
					else if (e.type === br) {
						let {
							el: n,
							anchor: o
						} = e;
						for (; n && (As(n, t), n !== o);) n = n.nextSibling
					}
				}

				function As(e, t) {
					if (1 === e.nodeType) {
						const n = e.style;
						for (const e in t) n.setProperty(`--${e}`, t[e])
					}
				}
				const Fs = "transition",
					Ps = "animation",
					Rs = (e, {
						slots: t
					}) => cs(Ln, Bs(e), t);
				Rs.displayName = "Transition";
				const $s = {
						name: String,
						type: String,
						css: {
							type: Boolean,
							default: !0
						},
						duration: [String, Number, Object],
						enterFromClass: String,
						enterActiveClass: String,
						enterToClass: String,
						appearFromClass: String,
						appearActiveClass: String,
						appearToClass: String,
						leaveFromClass: String,
						leaveActiveClass: String,
						leaveToClass: String
					},
					Ms = Rs.props = k({}, Ln.props, $s),
					Vs = (e, t = []) => {
						E(e) ? e.forEach((e => e(...t))) : e && e(...t)
					},
					Is = e => !!e && (E(e) ? e.some((e => e.length > 1)) : e.length > 1);

				function Bs(e) {
					const t = {};
					for (const k in e) k in $s || (t[k] = e[k]);
					if (!1 === e.css) return t;
					const {
						name: n = "v",
						type: o,
						duration: r,
						enterFromClass: s = `${n}-enter-from`,
						enterActiveClass: i = `${n}-enter-active`,
						enterToClass: l = `${n}-enter-to`,
						appearFromClass: c = s,
						appearActiveClass: a = i,
						appearToClass: u = l,
						leaveFromClass: p = `${n}-leave-from`,
						leaveActiveClass: f = `${n}-leave-active`,
						leaveToClass: d = `${n}-leave-to`
					} = e, h = function(e) {
						if (null == e) return null;
						if (M(e)) return [Ls(e.enter), Ls(e.leave)]; {
							const t = Ls(e);
							return [t, t]
						}
					}(r), m = h && h[0], g = h && h[1], {
						onBeforeEnter: v,
						onEnter: y,
						onEnterCancelled: _,
						onLeave: b,
						onLeaveCancelled: S,
						onBeforeAppear: x = v,
						onAppear: C = y,
						onAppearCancelled: w = _
					} = t, T = (e, t, n) => {
						Us(e, t ? u : l), Us(e, t ? a : i), n && n()
					}, N = (e, t) => {
						e._isLeaving = !1, Us(e, p), Us(e, d), Us(e, f), t && t()
					}, E = e => (t, n) => {
						const r = e ? C : y,
							i = () => T(t, e, n);
						Vs(r, [t, i]), Ds((() => {
							Us(t, e ? c : s), js(t, e ? u : l), Is(r) || Ws(t, o, m, i)
						}))
					};
					return k(t, {
						onBeforeEnter(e) {
							Vs(v, [e]), js(e, s), js(e, i)
						},
						onBeforeAppear(e) {
							Vs(x, [e]), js(e, c), js(e, a)
						},
						onEnter: E(!1),
						onAppear: E(!0),
						onLeave(e, t) {
							e._isLeaving = !0;
							const n = () => N(e, t);
							js(e, p), qs(), js(e, f), Ds((() => {
								e._isLeaving && (Us(e, p), js(e, d), Is(b) || Ws(e, o, g, n))
							})), Vs(b, [e, n])
						},
						onEnterCancelled(e) {
							T(e, !1), Vs(_, [e])
						},
						onAppearCancelled(e) {
							T(e, !0), Vs(w, [e])
						},
						onLeaveCancelled(e) {
							N(e), Vs(S, [e])
						}
					})
				}

				function Ls(e) {
					return ee(e)
				}

				function js(e, t) {
					t.split(/\s+/).forEach((t => t && e.classList.add(t))), (e._vtc || (e._vtc = new Set)).add(t)
				}

				function Us(e, t) {
					t.split(/\s+/).forEach((t => t && e.classList.remove(t)));
					const {
						_vtc: n
					} = e;
					n && (n.delete(t), n.size || (e._vtc = void 0))
				}

				function Ds(e) {
					requestAnimationFrame((() => {
						requestAnimationFrame(e)
					}))
				}
				let Hs = 0;

				function Ws(e, t, n, o) {
					const r = e._endId = ++Hs,
						s = () => {
							r === e._endId && o()
						};
					if (n) return setTimeout(s, n);
					const {
						type: i,
						timeout: l,
						propCount: c
					} = zs(e, t);
					if (!i) return o();
					const a = i + "end";
					let u = 0;
					const p = () => {
							e.removeEventListener(a, f), s()
						},
						f = t => {
							t.target === e && ++u >= c && p()
						};
					setTimeout((() => {
						u < c && p()
					}), l + 1), e.addEventListener(a, f)
				}

				function zs(e, t) {
					const n = window.getComputedStyle(e),
						o = e => (n[e] || "").split(", "),
						r = o("transitionDelay"),
						s = o("transitionDuration"),
						i = Ks(r, s),
						l = o("animationDelay"),
						c = o("animationDuration"),
						a = Ks(l, c);
					let u = null,
						p = 0,
						f = 0;
					t === Fs ? i > 0 && (u = Fs, p = i, f = s.length) : t === Ps ? a > 0 && (u = Ps, p = a, f = c.length) : (
						p = Math.max(i, a), u = p > 0 ? i > a ? Fs : Ps : null, f = u ? u === Fs ? s.length : c.length :
						0);
					return {
						type: u,
						timeout: p,
						propCount: f,
						hasTransform: u === Fs && /\b(transform|all)(,|$)/.test(o("transitionProperty").toString())
					}
				}

				function Ks(e, t) {
					for (; e.length < t.length;) e = e.concat(e);
					return Math.max(...t.map(((t, n) => Gs(t) + Gs(e[n]))))
				}

				function Gs(e) {
					return 1e3 * Number(e.slice(0, -1).replace(",", "."))
				}

				function qs() {
					return document.body.offsetHeight
				}
				const Js = new WeakMap,
					Zs = new WeakMap,
					Ys = {
						name: "TransitionGroup",
						props: k({}, Ms, {
							tag: String,
							moveClass: String
						}),
						setup(e, {
							slots: t
						}) {
							const n = Gr(),
								o = In();
							let r, s;
							return ao((() => {
								if (!r.length) return;
								const t = e.moveClass || `${e.name||"v"}-move`;
								if (! function(e, t, n) {
										const o = e.cloneNode();
										e._vtc && e._vtc.forEach((e => {
											e.split(/\s+/).forEach((e => e && o.classList.remove(e)))
										}));
										n.split(/\s+/).forEach((e => e && o.classList.add(e))), o.style.display =
											"none";
										const r = 1 === t.nodeType ? t : t.parentNode;
										r.appendChild(o);
										const {
											hasTransform: s
										} = zs(o);
										return r.removeChild(o), s
									}(r[0].el, n.vnode.el, t)) return;
								r.forEach(Xs), r.forEach(ei);
								const o = r.filter(ti);
								qs(), o.forEach((e => {
									const n = e.el,
										o = n.style;
									js(n, t), o.transform = o.webkitTransform = o
										.transitionDuration = "";
									const r = n._moveCb = e => {
										e && e.target !== n || e && !/transform$/.test(e
											.propertyName) || (n.removeEventListener(
											"transitionend", r), n._moveCb = null, Us(n,
											t))
									};
									n.addEventListener("transitionend", r)
								}))
							})), () => {
								const i = xt(e),
									l = Bs(i);
								let c = i.tag || vr;
								r = s, s = t.default ? zn(t.default()) : [];
								for (let e = 0; e < s.length; e++) {
									const t = s[e];
									null != t.key && Wn(t, Un(t, l, o, n))
								}
								if (r)
									for (let e = 0; e < r.length; e++) {
										const t = r[e];
										Wn(t, Un(t, l, o, n)), Js.set(t, t.el.getBoundingClientRect())
									}
								return Mr(c, null, s)
							}
						}
					},
					Qs = Ys;

				function Xs(e) {
					const t = e.el;
					t._moveCb && t._moveCb(), t._enterCb && t._enterCb()
				}

				function ei(e) {
					Zs.set(e, e.el.getBoundingClientRect())
				}

				function ti(e) {
					const t = Js.get(e),
						n = Zs.get(e),
						o = t.left - n.left,
						r = t.top - n.top;
					if (o || r) {
						const t = e.el.style;
						return t.transform = t.webkitTransform = `translate(${o}px,${r}px)`, t.transitionDuration = "0s", e
					}
				}
				const ni = e => {
					const t = e.props["onUpdate:modelValue"] || !1;
					return E(t) ? e => Y(t, e) : t
				};

				function oi(e) {
					e.target.composing = !0
				}

				function ri(e) {
					const t = e.target;
					t.composing && (t.composing = !1, t.dispatchEvent(new Event("input")))
				}
				const si = {
						created(e, {
							modifiers: {
								lazy: t,
								trim: n,
								number: o
							}
						}, r) {
							e._assign = ni(r);
							const s = o || r.props && "number" === r.props.type;
							bs(e, t ? "change" : "input", (t => {
								if (t.target.composing) return;
								let o = e.value;
								n && (o = o.trim()), s && (o = X(o)), e._assign(o)
							})), n && bs(e, "change", (() => {
								e.value = e.value.trim()
							})), t || (bs(e, "compositionstart", oi), bs(e, "compositionend", ri), bs(e, "change", ri))
						},
						mounted(e, {
							value: t
						}) {
							e.value = null == t ? "" : t
						},
						beforeUpdate(e, {
							value: t,
							modifiers: {
								lazy: n,
								trim: o,
								number: r
							}
						}, s) {
							if (e._assign = ni(s), e.composing) return;
							if (document.activeElement === e && "range" !== e.type) {
								if (n) return;
								if (o && e.value.trim() === t) return;
								if ((r || "number" === e.type) && X(e.value) === t) return
							}
							const i = null == t ? "" : t;
							e.value !== i && (e.value = i)
						}
					},
					ii = {
						deep: !0,
						created(e, t, n) {
							e._assign = ni(n), bs(e, "change", (() => {
								const t = e._modelValue,
									n = pi(e),
									o = e.checked,
									r = e._assign;
								if (E(t)) {
									const e = m(t, n),
										s = -1 !== e;
									if (o && !s) r(t.concat(n));
									else if (!o && s) {
										const n = [...t];
										n.splice(e, 1), r(n)
									}
								} else if (A(t)) {
									const e = new Set(t);
									o ? e.add(n) : e.delete(n), r(e)
								} else r(fi(e, o))
							}))
						},
						mounted: li,
						beforeUpdate(e, t, n) {
							e._assign = ni(n), li(e, t, n)
						}
					};

				function li(e, {
					value: t,
					oldValue: n
				}, o) {
					e._modelValue = t, E(t) ? e.checked = m(t, o.props.value) > -1 : A(t) ? e.checked = t.has(o.props
						.value) : t !== n && (e.checked = h(t, fi(e, !0)))
				}
				const ci = {
						created(e, {
							value: t
						}, n) {
							e.checked = h(t, n.props.value), e._assign = ni(n), bs(e, "change", (() => {
								e._assign(pi(e))
							}))
						},
						beforeUpdate(e, {
							value: t,
							oldValue: n
						}, o) {
							e._assign = ni(o), t !== n && (e.checked = h(t, o.props.value))
						}
					},
					ai = {
						deep: !0,
						created(e, {
							value: t,
							modifiers: {
								number: n
							}
						}, o) {
							const r = A(t);
							bs(e, "change", (() => {
								const t = Array.prototype.filter.call(e.options, (e => e.selected)).map((e => n ?
									X(pi(e)) : pi(e)));
								e._assign(e.multiple ? r ? new Set(t) : t : t[0])
							})), e._assign = ni(o)
						},
						mounted(e, {
							value: t
						}) {
							ui(e, t)
						},
						beforeUpdate(e, t, n) {
							e._assign = ni(n)
						},
						updated(e, {
							value: t
						}) {
							ui(e, t)
						}
					};

				function ui(e, t) {
					const n = e.multiple;
					if (!n || E(t) || A(t)) {
						for (let o = 0, r = e.options.length; o < r; o++) {
							const r = e.options[o],
								s = pi(r);
							if (n) r.selected = E(t) ? m(t, s) > -1 : t.has(s);
							else if (h(pi(r), t)) return void(e.selectedIndex !== o && (e.selectedIndex = o))
						}
						n || -1 === e.selectedIndex || (e.selectedIndex = -1)
					}
				}

				function pi(e) {
					return "_value" in e ? e._value : e.value
				}

				function fi(e, t) {
					const n = t ? "_trueValue" : "_falseValue";
					return n in e ? e[n] : t
				}
				const di = {
					created(e, t, n) {
						hi(e, t, n, null, "created")
					},
					mounted(e, t, n) {
						hi(e, t, n, null, "mounted")
					},
					beforeUpdate(e, t, n, o) {
						hi(e, t, n, o, "beforeUpdate")
					},
					updated(e, t, n, o) {
						hi(e, t, n, o, "updated")
					}
				};

				function hi(e, t, n, o, r) {
					const s = function(e, t) {
						switch (e) {
							case "SELECT":
								return ai;
							case "TEXTAREA":
								return si;
							default:
								switch (t) {
									case "checkbox":
										return ii;
									case "radio":
										return ci;
									default:
										return si
								}
						}
					}(e.tagName, n.props && n.props.type)[r];
					s && s(e, t, n, o)
				}
				const mi = ["ctrl", "shift", "alt", "meta"],
					gi = {
						stop: e => e.stopPropagation(),
						prevent: e => e.preventDefault(),
						self: e => e.target !== e.currentTarget,
						ctrl: e => !e.ctrlKey,
						shift: e => !e.shiftKey,
						alt: e => !e.altKey,
						meta: e => !e.metaKey,
						left: e => "button" in e && 0 !== e.button,
						middle: e => "button" in e && 1 !== e.button,
						right: e => "button" in e && 2 !== e.button,
						exact: (e, t) => mi.some((n => e[`${n}Key`] && !t.includes(n)))
					},
					vi = {
						esc: "escape",
						space: " ",
						up: "arrow-up",
						left: "arrow-left",
						right: "arrow-right",
						down: "arrow-down",
						delete: "backspace"
					},
					yi = {
						beforeMount(e, {
							value: t
						}, {
							transition: n
						}) {
							e._vod = "none" === e.style.display ? "" : e.style.display, n && t ? n.beforeEnter(e) : _i(e, t)
						},
						mounted(e, {
							value: t
						}, {
							transition: n
						}) {
							n && t && n.enter(e)
						},
						updated(e, {
							value: t,
							oldValue: n
						}, {
							transition: o
						}) {
							!t != !n && (o ? t ? (o.beforeEnter(e), _i(e, !0), o.enter(e)) : o.leave(e, (() => {
								_i(e, !1)
							})) : _i(e, t))
						},
						beforeUnmount(e, {
							value: t
						}) {
							_i(e, t)
						}
					};

				function _i(e, t) {
					e.style.display = t ? e._vod : "none"
				}
				const bi = k({
					patchProp: (e, t, n, o, r = !1, s, i, l, c) => {
						"class" === t ? function(e, t, n) {
							const o = e._vtc;
							o && (t = (t ? [t, ...o] : [...o]).join(" ")), null == t ? e.removeAttribute(
								"class") : n ? e.setAttribute("class", t) : e.className = t
						}(e, o, r) : "style" === t ? function(e, t, n) {
							const o = e.style,
								r = R(n);
							if (n && !r) {
								if (t && !R(t))
									for (const e in t) null == n[e] && gs(o, e, "");
								for (const e in n) gs(o, e, n[e])
							} else {
								const s = o.display;
								r ? t !== n && (o.cssText = n) : t && e.removeAttribute("style"), "_vod" in
									e && (o.display = s)
							}
						}(e, n, o) : x(t) ? C(t) || Ss(e, t, 0, o, i) : ("." === t[0] ? (t = t.slice(1), 1) :
							"^" === t[0] ? (t = t.slice(1), 0) : function(e, t, n, o) {
								if (o) return "innerHTML" === t || "textContent" === t || !!(t in e && ws
									.test(t) && P(n));
								if ("spellcheck" === t || "draggable" === t || "translate" === t) return !1;
								if ("form" === t) return !1;
								if ("list" === t && "INPUT" === e.tagName) return !1;
								if ("type" === t && "TEXTAREA" === e.tagName) return !1;
								if (ws.test(t) && R(n)) return !1;
								return t in e
							}(e, t, o, r)) ? function(e, t, n, o, r, s, i) {
							if ("innerHTML" === t || "textContent" === t) return o && i(o, r, s), void(e[t] =
								null == n ? "" : n);
							if ("value" === t && "PROGRESS" !== e.tagName && !e.tagName.includes("-")) {
								e._value = n;
								const o = null == n ? "" : n;
								return e.value === o && "OPTION" !== e.tagName || (e.value = o), void(null ==
									n && e.removeAttribute(t))
							}
							let l = !1;
							if ("" === n || null == n) {
								const o = typeof e[t];
								"boolean" === o ? n = d(n) : null == n && "string" === o ? (n = "", l = !0) :
									"number" === o && (n = 0, l = !0)
							}
							try {
								e[t] = n
							} catch (c) {}
							l && e.removeAttribute(t)
						}(e, t, o, s, i, l, c) : ("true-value" === t ? e._trueValue = o : "false-value" ===
							t && (e._falseValue = o),
							function(e, t, n, o, r) {
								if (o && t.startsWith("xlink:")) null == n ? e.removeAttributeNS(_s, t.slice(
									6, t.length)) : e.setAttributeNS(_s, t, n);
								else {
									const o = f(t);
									null == n || o && !d(n) ? e.removeAttribute(t) : e.setAttribute(t, o ?
										"" : n)
								}
							}(e, t, o, r))
					}
				}, hs);
				let Si, xi = !1;

				function Ci() {
					return Si || (Si = ir(bi))
				}

				function ki() {
					return Si = xi ? Si : lr(bi), xi = !0, Si
				}
				const wi = (...e) => {
						Ci().render(...e)
					},
					Ti = (...e) => {
						ki().hydrate(...e)
					};

				function Ni(e) {
					if (R(e)) {
						return document.querySelector(e)
					}
					return e
				}
				const Ei = _;

				function Oi(e) {
					throw e
				}

				function Ai(e) {}

				function Fi(e, t, n, o) {
					const r = new SyntaxError(String(e));
					return r.code = e, r.loc = t, r
				}
				const Pi = Symbol(""),
					Ri = Symbol(""),
					$i = Symbol(""),
					Mi = Symbol(""),
					Vi = Symbol(""),
					Ii = Symbol(""),
					Bi = Symbol(""),
					Li = Symbol(""),
					ji = Symbol(""),
					Ui = Symbol(""),
					Di = Symbol(""),
					Hi = Symbol(""),
					Wi = Symbol(""),
					zi = Symbol(""),
					Ki = Symbol(""),
					Gi = Symbol(""),
					qi = Symbol(""),
					Ji = Symbol(""),
					Zi = Symbol(""),
					Yi = Symbol(""),
					Qi = Symbol(""),
					Xi = Symbol(""),
					el = Symbol(""),
					tl = Symbol(""),
					nl = Symbol(""),
					ol = Symbol(""),
					rl = Symbol(""),
					sl = Symbol(""),
					il = Symbol(""),
					ll = Symbol(""),
					cl = Symbol(""),
					al = Symbol(""),
					ul = Symbol(""),
					pl = Symbol(""),
					fl = Symbol(""),
					dl = Symbol(""),
					hl = Symbol(""),
					ml = Symbol(""),
					gl = Symbol(""),
					vl = {
						[Pi]: "Fragment",
						[Ri]: "Teleport",
						[$i]: "Suspense",
						[Mi]: "KeepAlive",
						[Vi]: "BaseTransition",
						[Ii]: "openBlock",
						[Bi]: "createBlock",
						[Li]: "createElementBlock",
						[ji]: "createVNode",
						[Ui]: "createElementVNode",
						[Di]: "createCommentVNode",
						[Hi]: "createTextVNode",
						[Wi]: "createStaticVNode",
						[zi]: "resolveComponent",
						[Ki]: "resolveDynamicComponent",
						[Gi]: "resolveDirective",
						[qi]: "resolveFilter",
						[Ji]: "withDirectives",
						[Zi]: "renderList",
						[Yi]: "renderSlot",
						[Qi]: "createSlots",
						[Xi]: "toDisplayString",
						[el]: "mergeProps",
						[tl]: "normalizeClass",
						[nl]: "normalizeStyle",
						[ol]: "normalizeProps",
						[rl]: "guardReactiveProps",
						[sl]: "toHandlers",
						[il]: "camelize",
						[ll]: "capitalize",
						[cl]: "toHandlerKey",
						[al]: "setBlockTracking",
						[ul]: "pushScopeId",
						[pl]: "popScopeId",
						[fl]: "withCtx",
						[dl]: "unref",
						[hl]: "isRef",
						[ml]: "withMemo",
						[gl]: "isMemoSame"
					};
				const yl = {
					source: "",
					start: {
						line: 1,
						column: 1,
						offset: 0
					},
					end: {
						line: 1,
						column: 1,
						offset: 0
					}
				};

				function _l(e, t, n, o, r, s, i, l = !1, c = !1, a = !1, u = yl) {
					return e && (l ? (e.helper(Ii), e.helper(ql(e.inSSR, a))) : e.helper(Gl(e.inSSR, a)), i && e.helper(
						Ji)), {
						type: 13,
						tag: t,
						props: n,
						children: o,
						patchFlag: r,
						dynamicProps: s,
						directives: i,
						isBlock: l,
						disableTracking: c,
						isComponent: a,
						loc: u
					}
				}

				function bl(e, t = yl) {
					return {
						type: 17,
						loc: t,
						elements: e
					}
				}

				function Sl(e, t = yl) {
					return {
						type: 15,
						loc: t,
						properties: e
					}
				}

				function xl(e, t) {
					return {
						type: 16,
						loc: yl,
						key: R(e) ? Cl(e, !0) : e,
						value: t
					}
				}

				function Cl(e, t = !1, n = yl, o = 0) {
					return {
						type: 4,
						loc: n,
						content: e,
						isStatic: t,
						constType: t ? 3 : o
					}
				}

				function kl(e, t = yl) {
					return {
						type: 8,
						loc: t,
						children: e
					}
				}

				function wl(e, t = [], n = yl) {
					return {
						type: 14,
						loc: n,
						callee: e,
						arguments: t
					}
				}

				function Tl(e, t, n = !1, o = !1, r = yl) {
					return {
						type: 18,
						params: e,
						returns: t,
						newline: n,
						isSlot: o,
						loc: r
					}
				}

				function Nl(e, t, n, o = !0) {
					return {
						type: 19,
						test: e,
						consequent: t,
						alternate: n,
						newline: o,
						loc: yl
					}
				}
				const El = e => 4 === e.type && e.isStatic,
					Ol = (e, t) => e === t || e === G(t);

				function Al(e) {
					return Ol(e, "Teleport") ? Ri : Ol(e, "Suspense") ? $i : Ol(e, "KeepAlive") ? Mi : Ol(e,
						"BaseTransition") ? Vi : void 0
				}
				const Fl = /^\d|[^\$\w]/,
					Pl = e => !Fl.test(e),
					Rl = /[A-Za-z_$\xA0-\uFFFF]/,
					$l = /[\.\?\w$\xA0-\uFFFF]/,
					Ml = /\s+[.[]\s*|\s*[.[]\s+/g,
					Vl = e => {
						e = e.trim().replace(Ml, (e => e.trim()));
						let t = 0,
							n = [],
							o = 0,
							r = 0,
							s = null;
						for (let i = 0; i < e.length; i++) {
							const l = e.charAt(i);
							switch (t) {
								case 0:
									if ("[" === l) n.push(t), t = 1, o++;
									else if ("(" === l) n.push(t), t = 2, r++;
									else if (!(0 === i ? Rl : $l).test(l)) return !1;
									break;
								case 1:
									"'" === l || '"' === l || "`" === l ? (n.push(t), t = 3, s = l) : "[" === l ? o++ :
										"]" === l && (--o || (t = n.pop()));
									break;
								case 2:
									if ("'" === l || '"' === l || "`" === l) n.push(t), t = 3, s = l;
									else if ("(" === l) r++;
									else if (")" === l) {
										if (i === e.length - 1) return !1;
										--r || (t = n.pop())
									}
									break;
								case 3:
									l === s && (t = n.pop(), s = null)
							}
						}
						return !o && !r
					};

				function Il(e, t, n) {
					const o = {
						source: e.source.slice(t, t + n),
						start: Bl(e.start, e.source, t),
						end: e.end
					};
					return null != n && (o.end = Bl(e.start, e.source, t + n)), o
				}

				function Bl(e, t, n = t.length) {
					return Ll(k({}, e), t, n)
				}

				function Ll(e, t, n = t.length) {
					let o = 0,
						r = -1;
					for (let s = 0; s < n; s++) 10 === t.charCodeAt(s) && (o++, r = s);
					return e.offset += n, e.line += o, e.column = -1 === r ? e.column + n : n - r, e
				}

				function jl(e, t, n = !1) {
					for (let o = 0; o < e.props.length; o++) {
						const r = e.props[o];
						if (7 === r.type && (n || r.exp) && (R(t) ? r.name === t : t.test(r.name))) return r
					}
				}

				function Ul(e, t, n = !1, o = !1) {
					for (let r = 0; r < e.props.length; r++) {
						const s = e.props[r];
						if (6 === s.type) {
							if (n) continue;
							if (s.name === t && (s.value || o)) return s
						} else if ("bind" === s.name && (s.exp || o) && Dl(s.arg, t)) return s
					}
				}

				function Dl(e, t) {
					return !(!e || !El(e) || e.content !== t)
				}

				function Hl(e) {
					return 5 === e.type || 2 === e.type
				}

				function Wl(e) {
					return 7 === e.type && "slot" === e.name
				}

				function zl(e) {
					return 1 === e.type && 3 === e.tagType
				}

				function Kl(e) {
					return 1 === e.type && 2 === e.tagType
				}

				function Gl(e, t) {
					return e || t ? ji : Ui
				}

				function ql(e, t) {
					return e || t ? Bi : Li
				}
				const Jl = new Set([ol, rl]);

				function Zl(e, t = []) {
					if (e && !R(e) && 14 === e.type) {
						const n = e.callee;
						if (!R(n) && Jl.has(n)) return Zl(e.arguments[0], t.concat(e))
					}
					return [e, t]
				}

				function Yl(e, t, n) {
					let o, r, s = 13 === e.type ? e.props : e.arguments[2],
						i = [];
					if (s && !R(s) && 14 === s.type) {
						const e = Zl(s);
						s = e[0], i = e[1], r = i[i.length - 1]
					}
					if (null == s || R(s)) o = Sl([t]);
					else if (14 === s.type) {
						const e = s.arguments[0];
						R(e) || 15 !== e.type ? s.callee === sl ? o = wl(n.helper(el), [Sl([t]), s]) : s.arguments.unshift(
							Sl([t])) : Ql(t, e) || e.properties.unshift(t), !o && (o = s)
					} else 15 === s.type ? (Ql(t, s) || s.properties.unshift(t), o = s) : (o = wl(n.helper(el), [Sl([t]),
						s
					]), r && r.callee === rl && (r = i[i.length - 2]));
					13 === e.type ? r ? r.arguments[0] = o : e.props = o : r ? r.arguments[0] = o : e.arguments[2] = o
				}

				function Ql(e, t) {
					let n = !1;
					if (4 === e.key.type) {
						const o = e.key.content;
						n = t.properties.some((e => 4 === e.key.type && e.key.content === o))
					}
					return n
				}

				function Xl(e, t) {
					return `_${t}_${e.replace(/[^\w]/g,((t,n)=>"-"===t?"_":e.charCodeAt(n).toString()))}`
				}

				function ec(e, {
					helper: t,
					removeHelper: n,
					inSSR: o
				}) {
					e.isBlock || (e.isBlock = !0, n(Gl(o, e.isComponent)), t(Ii), t(ql(o, e.isComponent)))
				}
				const tc = /&(gt|lt|amp|apos|quot);/g,
					nc = {
						gt: ">",
						lt: "<",
						amp: "&",
						apos: "'",
						quot: '"'
					},
					oc = {
						delimiters: ["{{", "}}"],
						getNamespace: () => 0,
						getTextMode: () => 0,
						isVoidTag: b,
						isPreTag: b,
						isCustomElement: b,
						decodeEntities: e => e.replace(tc, ((e, t) => nc[t])),
						onError: Oi,
						onWarn: Ai,
						comments: !1
					};

				function rc(e, t = {}) {
					const n = function(e, t) {
							const n = k({}, oc);
							let o;
							for (o in t) n[o] = void 0 === t[o] ? oc[o] : t[o];
							return {
								options: n,
								column: 1,
								line: 1,
								offset: 0,
								originalSource: e,
								source: e,
								inPre: !1,
								inVPre: !1,
								onWarn: n.onWarn
							}
						}(e, t),
						o = yc(n);
					return function(e, t = yl) {
						return {
							type: 0,
							children: e,
							helpers: new Set,
							components: [],
							directives: [],
							hoists: [],
							imports: [],
							cached: 0,
							temps: 0,
							codegenNode: void 0,
							loc: t
						}
					}(sc(n, 0, []), _c(n, o))
				}

				function sc(e, t, n) {
					const o = bc(n),
						r = o ? o.ns : 0,
						s = [];
					for (; !wc(e, t, n);) {
						const i = e.source;
						let l;
						if (0 === t || 1 === t)
							if (!e.inVPre && Sc(i, e.options.delimiters[0])) l = mc(e, t);
							else if (0 === t && "<" === i[0])
							if (1 === i.length);
							else if ("!" === i[1]) l = Sc(i, "\x3c!--") ? cc(e) : Sc(i, "<!DOCTYPE") ? ac(e) : Sc(i,
							"<![CDATA[") && 0 !== r ? lc(e, n) : ac(e);
						else if ("/" === i[1])
							if (2 === i.length);
							else {
								if (">" === i[2]) {
									xc(e, 3);
									continue
								}
								if (/[a-z]/i.test(i[2])) {
									fc(e, 1, o);
									continue
								}
								l = ac(e)
							}
						else /[a-z]/i.test(i[1]) ? l = uc(e, n) : "?" === i[1] && (l = ac(e));
						if (l || (l = gc(e, t)), E(l))
							for (let e = 0; e < l.length; e++) ic(s, l[e]);
						else ic(s, l)
					}
					let i = !1;
					if (2 !== t && 1 !== t) {
						const t = "preserve" !== e.options.whitespace;
						for (let n = 0; n < s.length; n++) {
							const o = s[n];
							if (2 === o.type)
								if (e.inPre) o.content = o.content.replace(/\r\n/g, "\n");
								else if (/[^\t\r\n\f ]/.test(o.content)) t && (o.content = o.content.replace(/[\t\r\n\f ]+/g,
								" "));
							else {
								const e = s[n - 1],
									r = s[n + 1];
								!e || !r || t && (3 === e.type && 3 === r.type || 3 === e.type && 1 === r.type || 1 === e
										.type && 3 === r.type || 1 === e.type && 1 === r.type && /[\r\n]/.test(o.content)) ?
									(i = !0, s[n] = null) : o.content = " "
							} else 3 !== o.type || e.options.comments || (i = !0, s[n] = null)
						}
						if (e.inPre && o && e.options.isPreTag(o.tag)) {
							const e = s[0];
							e && 2 === e.type && (e.content = e.content.replace(/^\r?\n/, ""))
						}
					}
					return i ? s.filter(Boolean) : s
				}

				function ic(e, t) {
					if (2 === t.type) {
						const n = bc(e);
						if (n && 2 === n.type && n.loc.end.offset === t.loc.start.offset) return n.content += t.content, n
							.loc.end = t.loc.end, void(n.loc.source += t.loc.source)
					}
					e.push(t)
				}

				function lc(e, t) {
					xc(e, 9);
					const n = sc(e, 3, t);
					return 0 === e.source.length || xc(e, 3), n
				}

				function cc(e) {
					const t = yc(e);
					let n;
					const o = /--(\!)?>/.exec(e.source);
					if (o) {
						n = e.source.slice(4, o.index);
						const t = e.source.slice(0, o.index);
						let r = 1,
							s = 0;
						for (; - 1 !== (s = t.indexOf("\x3c!--", r));) xc(e, s - r + 1), r = s + 1;
						xc(e, o.index + o[0].length - r + 1)
					} else n = e.source.slice(4), xc(e, e.source.length);
					return {
						type: 3,
						content: n,
						loc: _c(e, t)
					}
				}

				function ac(e) {
					const t = yc(e),
						n = "?" === e.source[1] ? 1 : 2;
					let o;
					const r = e.source.indexOf(">");
					return -1 === r ? (o = e.source.slice(n), xc(e, e.source.length)) : (o = e.source.slice(n, r), xc(e, r +
						1)), {
						type: 3,
						content: o,
						loc: _c(e, t)
					}
				}

				function uc(e, t) {
					const n = e.inPre,
						o = e.inVPre,
						r = bc(t),
						s = fc(e, 0, r),
						i = e.inPre && !n,
						l = e.inVPre && !o;
					if (s.isSelfClosing || e.options.isVoidTag(s.tag)) return i && (e.inPre = !1), l && (e.inVPre = !1), s;
					t.push(s);
					const c = e.options.getTextMode(s, r),
						a = sc(e, c, t);
					if (t.pop(), s.children = a, Tc(e.source, s.tag)) fc(e, 1, r);
					else if (0 === e.source.length && "script" === s.tag.toLowerCase()) {
						const e = a[0];
						e && Sc(e.loc.source, "\x3c!--")
					}
					return s.loc = _c(e, s.loc.start), i && (e.inPre = !1), l && (e.inVPre = !1), s
				}
				const pc = t("if,else,else-if,for,slot");

				function fc(e, t, n) {
					const o = yc(e),
						r = /^<\/?([a-z][^\t\r\n\f />]*)/i.exec(e.source),
						s = r[1],
						i = e.options.getNamespace(s, n);
					xc(e, r[0].length), Cc(e);
					const l = yc(e),
						c = e.source;
					e.options.isPreTag(s) && (e.inPre = !0);
					let a = dc(e, t);
					0 === t && !e.inVPre && a.some((e => 7 === e.type && "pre" === e.name)) && (e.inVPre = !0, k(e, l), e
						.source = c, a = dc(e, t).filter((e => "v-pre" !== e.name)));
					let u = !1;
					if (0 === e.source.length || (u = Sc(e.source, "/>"), xc(e, u ? 2 : 1)), 1 === t) return;
					let p = 0;
					return e.inVPre || ("slot" === s ? p = 2 : "template" === s ? a.some((e => 7 === e.type && pc(e
						.name))) && (p = 3) : function(e, t, n) {
						const o = n.options;
						if (o.isCustomElement(e)) return !1;
						if ("component" === e || /^[A-Z]/.test(e) || Al(e) || o.isBuiltInComponent && o
							.isBuiltInComponent(e) || o.isNativeTag && !o.isNativeTag(e)) return !0;
						for (let r = 0; r < t.length; r++) {
							const e = t[r];
							if (6 === e.type) {
								if ("is" === e.name && e.value && e.value.content.startsWith("vue:")) return !0
							} else {
								if ("is" === e.name) return !0;
								"bind" === e.name && Dl(e.arg, "is")
							}
						}
					}(s, a, e) && (p = 1)), {
						type: 1,
						ns: i,
						tag: s,
						tagType: p,
						props: a,
						isSelfClosing: u,
						children: [],
						loc: _c(e, o),
						codegenNode: void 0
					}
				}

				function dc(e, t) {
					const n = [],
						o = new Set;
					for (; e.source.length > 0 && !Sc(e.source, ">") && !Sc(e.source, "/>");) {
						if (Sc(e.source, "/")) {
							xc(e, 1), Cc(e);
							continue
						}
						const r = hc(e, o);
						6 === r.type && r.value && "class" === r.name && (r.value.content = r.value.content.replace(/\s+/g,
							" ").trim()), 0 === t && n.push(r), /^[^\t\r\n\f />]/.test(e.source), Cc(e)
					}
					return n
				}

				function hc(e, t) {
					const n = yc(e),
						o = /^[^\t\r\n\f />][^\t\r\n\f />=]*/.exec(e.source)[0];
					t.has(o), t.add(o); {
						const e = /["'<]/g;
						let t;
						for (; t = e.exec(o););
					}
					let r;
					xc(e, o.length), /^[\t\r\n\f ]*=/.test(e.source) && (Cc(e), xc(e, 1), Cc(e), r = function(e) {
						const t = yc(e);
						let n;
						const o = e.source[0],
							r = '"' === o || "'" === o;
						if (r) {
							xc(e, 1);
							const t = e.source.indexOf(o); - 1 === t ? n = vc(e, e.source.length, 4) : (n = vc(e, t,
								4), xc(e, 1))
						} else {
							const t = /^[^\t\r\n\f >]+/.exec(e.source);
							if (!t) return;
							const o = /["'<=`]/g;
							let r;
							for (; r = o.exec(t[0]););
							n = vc(e, t[0].length, 4)
						}
						return {
							content: n,
							isQuoted: r,
							loc: _c(e, t)
						}
					}(e));
					const s = _c(e, n);
					if (!e.inVPre && /^(v-[A-Za-z0-9-]|:|\.|@|#)/.test(o)) {
						const t = /(?:^v-([a-z0-9-]+))?(?:(?::|^\.|^@|^#)(\[[^\]]+\]|[^\.]+))?(.+)?$/i.exec(o);
						let i, l = Sc(o, "."),
							c = t[1] || (l || Sc(o, ":") ? "bind" : Sc(o, "@") ? "on" : "slot");
						if (t[2]) {
							const r = "slot" === c,
								s = o.lastIndexOf(t[2]),
								l = _c(e, kc(e, n, s), kc(e, n, s + t[2].length + (r && t[3] || "").length));
							let a = t[2],
								u = !0;
							a.startsWith("[") ? (u = !1, a = a.endsWith("]") ? a.slice(1, a.length - 1) : a.slice(1)) : r &&
								(a += t[3] || ""), i = {
									type: 4,
									content: a,
									isStatic: u,
									constType: u ? 3 : 0,
									loc: l
								}
						}
						if (r && r.isQuoted) {
							const e = r.loc;
							e.start.offset++, e.start.column++, e.end = Bl(e.start, r.content), e.source = e.source.slice(1,
								-1)
						}
						const a = t[3] ? t[3].slice(1).split(".") : [];
						return l && a.push("prop"), {
							type: 7,
							name: c,
							exp: r && {
								type: 4,
								content: r.content,
								isStatic: !1,
								constType: 0,
								loc: r.loc
							},
							arg: i,
							modifiers: a,
							loc: s
						}
					}
					return !e.inVPre && Sc(o, "v-"), {
						type: 6,
						name: o,
						value: r && {
							type: 2,
							content: r.content,
							loc: r.loc
						},
						loc: s
					}
				}

				function mc(e, t) {
					const [n, o] = e.options.delimiters, r = e.source.indexOf(o, n.length);
					if (-1 === r) return;
					const s = yc(e);
					xc(e, n.length);
					const i = yc(e),
						l = yc(e),
						c = r - n.length,
						a = e.source.slice(0, c),
						u = vc(e, c, t),
						p = u.trim(),
						f = u.indexOf(p);
					f > 0 && Ll(i, a, f);
					return Ll(l, a, c - (u.length - p.length - f)), xc(e, o.length), {
						type: 5,
						content: {
							type: 4,
							isStatic: !1,
							constType: 0,
							content: p,
							loc: _c(e, i, l)
						},
						loc: _c(e, s)
					}
				}

				function gc(e, t) {
					const n = 3 === t ? ["]]>"] : ["<", e.options.delimiters[0]];
					let o = e.source.length;
					for (let s = 0; s < n.length; s++) {
						const t = e.source.indexOf(n[s], 1); - 1 !== t && o > t && (o = t)
					}
					const r = yc(e);
					return {
						type: 2,
						content: vc(e, o, t),
						loc: _c(e, r)
					}
				}

				function vc(e, t, n) {
					const o = e.source.slice(0, t);
					return xc(e, t), 2 !== n && 3 !== n && o.includes("&") ? e.options.decodeEntities(o, 4 === n) : o
				}

				function yc(e) {
					const {
						column: t,
						line: n,
						offset: o
					} = e;
					return {
						column: t,
						line: n,
						offset: o
					}
				}

				function _c(e, t, n) {
					return {
						start: t,
						end: n = n || yc(e),
						source: e.originalSource.slice(t.offset, n.offset)
					}
				}

				function bc(e) {
					return e[e.length - 1]
				}

				function Sc(e, t) {
					return e.startsWith(t)
				}

				function xc(e, t) {
					const {
						source: n
					} = e;
					Ll(e, n, t), e.source = n.slice(t)
				}

				function Cc(e) {
					const t = /^[\t\r\n\f ]+/.exec(e.source);
					t && xc(e, t[0].length)
				}

				function kc(e, t, n) {
					return Bl(t, e.originalSource.slice(t.offset, n), n)
				}

				function wc(e, t, n) {
					const o = e.source;
					switch (t) {
						case 0:
							if (Sc(o, "</"))
								for (let e = n.length - 1; e >= 0; --e)
									if (Tc(o, n[e].tag)) return !0;
							break;
						case 1:
						case 2: {
							const e = bc(n);
							if (e && Tc(o, e.tag)) return !0;
							break
						}
						case 3:
							if (Sc(o, "]]>")) return !0
					}
					return !o
				}

				function Tc(e, t) {
					return Sc(e, "</") && e.slice(2, 2 + t.length).toLowerCase() === t.toLowerCase() && /[\t\r\n\f />]/.test(
						e[2 + t.length] || ">")
				}

				function Nc(e, t) {
					Oc(e, t, Ec(e, e.children[0]))
				}

				function Ec(e, t) {
					const {
						children: n
					} = e;
					return 1 === n.length && 1 === t.type && !Kl(t)
				}

				function Oc(e, t, n = !1) {
					const {
						children: o
					} = e, r = o.length;
					let s = 0;
					for (let i = 0; i < o.length; i++) {
						const e = o[i];
						if (1 === e.type && 0 === e.tagType) {
							const o = n ? 0 : Ac(e, t);
							if (o > 0) {
								if (o >= 2) {
									e.codegenNode.patchFlag = "-1", e.codegenNode = t.hoist(e.codegenNode), s++;
									continue
								}
							} else {
								const n = e.codegenNode;
								if (13 === n.type) {
									const o = Mc(n);
									if ((!o || 512 === o || 1 === o) && Rc(e, t) >= 2) {
										const o = $c(e);
										o && (n.props = t.hoist(o))
									}
									n.dynamicProps && (n.dynamicProps = t.hoist(n.dynamicProps))
								}
							}
						}
						if (1 === e.type) {
							const n = 1 === e.tagType;
							n && t.scopes.vSlot++, Oc(e, t), n && t.scopes.vSlot--
						} else if (11 === e.type) Oc(e, t, 1 === e.children.length);
						else if (9 === e.type)
							for (let n = 0; n < e.branches.length; n++) Oc(e.branches[n], t, 1 === e.branches[n].children
								.length)
					}
					s && t.transformHoist && t.transformHoist(o, t, e), s && s === r && 1 === e.type && 0 === e.tagType && e
						.codegenNode && 13 === e.codegenNode.type && E(e.codegenNode.children) && (e.codegenNode.children = t
							.hoist(bl(e.codegenNode.children)))
				}

				function Ac(e, t) {
					const {
						constantCache: n
					} = t;
					switch (e.type) {
						case 1:
							if (0 !== e.tagType) return 0;
							const o = n.get(e);
							if (void 0 !== o) return o;
							const r = e.codegenNode;
							if (13 !== r.type) return 0;
							if (r.isBlock && "svg" !== e.tag && "foreignObject" !== e.tag) return 0;
							if (Mc(r)) return n.set(e, 0), 0; {
								let o = 3;
								const s = Rc(e, t);
								if (0 === s) return n.set(e, 0), 0;
								s < o && (o = s);
								for (let r = 0; r < e.children.length; r++) {
									const s = Ac(e.children[r], t);
									if (0 === s) return n.set(e, 0), 0;
									s < o && (o = s)
								}
								if (o > 1)
									for (let r = 0; r < e.props.length; r++) {
										const s = e.props[r];
										if (7 === s.type && "bind" === s.name && s.exp) {
											const r = Ac(s.exp, t);
											if (0 === r) return n.set(e, 0), 0;
											r < o && (o = r)
										}
									}
								if (r.isBlock) {
									for (let t = 0; t < e.props.length; t++) {
										if (7 === e.props[t].type) return n.set(e, 0), 0
									}
									t.removeHelper(Ii), t.removeHelper(ql(t.inSSR, r.isComponent)), r.isBlock = !1, t.helper(
										Gl(t.inSSR, r.isComponent))
								}
								return n.set(e, o), o
							}
							case 2:
							case 3:
								return 3;
							case 9:
							case 11:
							case 10:
							default:
								return 0;
							case 5:
							case 12:
								return Ac(e.content, t);
							case 4:
								return e.constType;
							case 8:
								let s = 3;
								for (let n = 0; n < e.children.length; n++) {
									const o = e.children[n];
									if (R(o) || $(o)) continue;
									const r = Ac(o, t);
									if (0 === r) return 0;
									r < s && (s = r)
								}
								return s
					}
				}
				const Fc = new Set([tl, nl, ol, rl]);

				function Pc(e, t) {
					if (14 === e.type && !R(e.callee) && Fc.has(e.callee)) {
						const n = e.arguments[0];
						if (4 === n.type) return Ac(n, t);
						if (14 === n.type) return Pc(n, t)
					}
					return 0
				}

				function Rc(e, t) {
					let n = 3;
					const o = $c(e);
					if (o && 15 === o.type) {
						const {
							properties: e
						} = o;
						for (let o = 0; o < e.length; o++) {
							const {
								key: r,
								value: s
							} = e[o], i = Ac(r, t);
							if (0 === i) return i;
							let l;
							if (i < n && (n = i), l = 4 === s.type ? Ac(s, t) : 14 === s.type ? Pc(s, t) : 0, 0 === l)
								return l;
							l < n && (n = l)
						}
					}
					return n
				}

				function $c(e) {
					const t = e.codegenNode;
					if (13 === t.type) return t.props
				}

				function Mc(e) {
					const t = e.patchFlag;
					return t ? parseInt(t, 10) : void 0
				}

				function Vc(e, {
					filename: t = "",
					prefixIdentifiers: n = !1,
					hoistStatic: o = !1,
					cacheHandlers: r = !1,
					nodeTransforms: s = [],
					directiveTransforms: i = {},
					transformHoist: l = null,
					isBuiltInComponent: c = _,
					isCustomElement: a = _,
					expressionPlugins: u = [],
					scopeId: p = null,
					slotted: f = !0,
					ssr: d = !1,
					inSSR: h = !1,
					ssrCssVars: m = "",
					bindingMetadata: g = v,
					inline: y = !1,
					isTS: b = !1,
					onError: S = Oi,
					onWarn: x = Ai,
					compatConfig: C
				}) {
					const k = t.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/),
						w = {
							selfName: k && q(z(k[1])),
							prefixIdentifiers: n,
							hoistStatic: o,
							cacheHandlers: r,
							nodeTransforms: s,
							directiveTransforms: i,
							transformHoist: l,
							isBuiltInComponent: c,
							isCustomElement: a,
							expressionPlugins: u,
							scopeId: p,
							slotted: f,
							ssr: d,
							inSSR: h,
							ssrCssVars: m,
							bindingMetadata: g,
							inline: y,
							isTS: b,
							onError: S,
							onWarn: x,
							compatConfig: C,
							root: e,
							helpers: new Map,
							components: new Set,
							directives: new Set,
							hoists: [],
							imports: [],
							constantCache: new Map,
							temps: 0,
							cached: 0,
							identifiers: Object.create(null),
							scopes: {
								vFor: 0,
								vSlot: 0,
								vPre: 0,
								vOnce: 0
							},
							parent: null,
							currentNode: e,
							childIndex: 0,
							inVOnce: !1,
							helper(e) {
								const t = w.helpers.get(e) || 0;
								return w.helpers.set(e, t + 1), e
							},
							removeHelper(e) {
								const t = w.helpers.get(e);
								if (t) {
									const n = t - 1;
									n ? w.helpers.set(e, n) : w.helpers.delete(e)
								}
							},
							helperString: e => `_${vl[w.helper(e)]}`,
							replaceNode(e) {
								w.parent.children[w.childIndex] = w.currentNode = e
							},
							removeNode(e) {
								const t = e ? w.parent.children.indexOf(e) : w.currentNode ? w.childIndex : -1;
								e && e !== w.currentNode ? w.childIndex > t && (w.childIndex--, w.onNodeRemoved()) : (w
									.currentNode = null, w.onNodeRemoved()), w.parent.children.splice(t, 1)
							},
							onNodeRemoved: () => {},
							addIdentifiers(e) {},
							removeIdentifiers(e) {},
							hoist(e) {
								R(e) && (e = Cl(e)), w.hoists.push(e);
								const t = Cl(`_hoisted_${w.hoists.length}`, !1, e.loc, 2);
								return t.hoisted = e, t
							},
							cache: (e, t = !1) => function(e, t, n = !1) {
								return {
									type: 20,
									index: e,
									value: t,
									isVNode: n,
									loc: yl
								}
							}(w.cached++, e, t)
						};
					return w
				}

				function Ic(e, t) {
					const n = Vc(e, t);
					Bc(e, n), t.hoistStatic && Nc(e, n), t.ssr || function(e, t) {
							const {
								helper: n
							} = t, {
								children: o
							} = e;
							if (1 === o.length) {
								const n = o[0];
								if (Ec(e, n) && n.codegenNode) {
									const o = n.codegenNode;
									13 === o.type && ec(o, t), e.codegenNode = o
								} else e.codegenNode = n
							} else if (o.length > 1) {
								let o = 64;
								e.codegenNode = _l(t, n(Pi), void 0, e.children, o + "", void 0, void 0, !0, void 0, !1)
							}
						}(e, n), e.helpers = new Set([...n.helpers.keys()]), e.components = [...n.components], e
						.directives = [...n.directives], e.imports = n.imports, e.hoists = n.hoists, e.temps = n.temps, e
						.cached = n.cached
				}

				function Bc(e, t) {
					t.currentNode = e;
					const {
						nodeTransforms: n
					} = t, o = [];
					for (let s = 0; s < n.length; s++) {
						const r = n[s](e, t);
						if (r && (E(r) ? o.push(...r) : o.push(r)), !t.currentNode) return;
						e = t.currentNode
					}
					switch (e.type) {
						case 3:
							t.ssr || t.helper(Di);
							break;
						case 5:
							t.ssr || t.helper(Xi);
							break;
						case 9:
							for (let n = 0; n < e.branches.length; n++) Bc(e.branches[n], t);
							break;
						case 10:
						case 11:
						case 1:
						case 0:
							! function(e, t) {
								let n = 0;
								const o = () => {
									n--
								};
								for (; n < e.children.length; n++) {
									const r = e.children[n];
									R(r) || (t.parent = e, t.childIndex = n, t.onNodeRemoved = o, Bc(r, t))
								}
							}(e, t)
					}
					t.currentNode = e;
					let r = o.length;
					for (; r--;) o[r]()
				}

				function Lc(e, t) {
					const n = R(e) ? t => t === e : t => e.test(t);
					return (e, o) => {
						if (1 === e.type) {
							const {
								props: r
							} = e;
							if (3 === e.tagType && r.some(Wl)) return;
							const s = [];
							for (let i = 0; i < r.length; i++) {
								const l = r[i];
								if (7 === l.type && n(l.name)) {
									r.splice(i, 1), i--;
									const n = t(e, l, o);
									n && s.push(n)
								}
							}
							return s
						}
					}
				}
				const jc = "/*#__PURE__*/",
					Uc = e => `${vl[e]}: _${vl[e]}`;

				function Dc(e, {
					mode: t = "function",
					prefixIdentifiers: n = "module" === t,
					sourceMap: o = !1,
					filename: r = "template.vue.html",
					scopeId: s = null,
					optimizeImports: i = !1,
					runtimeGlobalName: l = "Vue",
					runtimeModuleName: c = "vue",
					ssrRuntimeModuleName: a = "vue/server-renderer",
					ssr: u = !1,
					isTS: p = !1,
					inSSR: f = !1
				}) {
					const d = {
						mode: t,
						prefixIdentifiers: n,
						sourceMap: o,
						filename: r,
						scopeId: s,
						optimizeImports: i,
						runtimeGlobalName: l,
						runtimeModuleName: c,
						ssrRuntimeModuleName: a,
						ssr: u,
						isTS: p,
						inSSR: f,
						source: e.loc.source,
						code: "",
						column: 1,
						line: 1,
						offset: 0,
						indentLevel: 0,
						pure: !1,
						map: void 0,
						helper: e => `_${vl[e]}`,
						push(e, t) {
							d.code += e
						},
						indent() {
							h(++d.indentLevel)
						},
						deindent(e = !1) {
							e ? --d.indentLevel : h(--d.indentLevel)
						},
						newline() {
							h(d.indentLevel)
						}
					};

					function h(e) {
						d.push("\n" + "  ".repeat(e))
					}
					return d
				}

				function Hc(e, t = {}) {
					const n = Dc(e, t);
					t.onContextCreated && t.onContextCreated(n);
					const {
						mode: o,
						push: r,
						prefixIdentifiers: s,
						indent: i,
						deindent: l,
						newline: c,
						ssr: a
					} = n, u = Array.from(e.helpers), p = u.length > 0, f = !s && "module" !== o, d = n;
					! function(e, t) {
						const {
							push: n,
							newline: o,
							runtimeGlobalName: r
						} = t, s = r, i = Array.from(e.helpers);
						if (i.length > 0 && (n(`const _Vue = ${s}\n`), e.hoists.length)) {
							n(`const { ${[ji,Ui,Di,Hi,Wi].filter((e=>i.includes(e))).map(Uc).join(", ")} } = _Vue\n`)
						}(function(e, t) {
							if (!e.length) return;
							t.pure = !0;
							const {
								push: n,
								newline: o
							} = t;
							o();
							for (let r = 0; r < e.length; r++) {
								const s = e[r];
								s && (n(`const _hoisted_${r+1} = `), Gc(s, t), o())
							}
							t.pure = !1
						})(e.hoists, t), o(), n("return ")
					}(e, d);
					if (r(
							`function ${a?"ssrRender":"render"}(${(a?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"]).join(", ")}) {`
						),
						i(), f && (r("with (_ctx) {"), i(), p && (r(`const { ${u.map(Uc).join(", ")} } = _Vue`), r("\n"),
							c())), e.components.length && (Wc(e.components, "component", n), (e.directives.length || e
							.temps >
							0) && c()), e.directives.length && (Wc(e.directives, "directive", n), e.temps > 0 && c()), e
						.temps > 0) {
						r("let ");
						for (let t = 0; t < e.temps; t++) r(`${t>0?", ":""}_temp${t}`)
					}
					return (e.components.length || e.directives.length || e.temps) && (r("\n"), c()), a || r("return "), e
						.codegenNode ? Gc(e.codegenNode, n) : r("null"), f && (l(), r("}")), l(), r("}"), {
							ast: e,
							code: n.code,
							preamble: "",
							map: n.map ? n.map.toJSON() : void 0
						}
				}

				function Wc(e, t, {
					helper: n,
					push: o,
					newline: r,
					isTS: s
				}) {
					const i = n("component" === t ? zi : Gi);
					for (let l = 0; l < e.length; l++) {
						let n = e[l];
						const c = n.endsWith("__self");
						c && (n = n.slice(0, -6)), o(
								`const ${Xl(n,t)} = ${i}(${JSON.stringify(n)}${c?", true":""})${s?"!":""}`), l < e.length -
							1 && r()
					}
				}

				function zc(e, t) {
					const n = e.length > 3 || !1;
					t.push("["), n && t.indent(), Kc(e, t, n), n && t.deindent(), t.push("]")
				}

				function Kc(e, t, n = !1, o = !0) {
					const {
						push: r,
						newline: s
					} = t;
					for (let i = 0; i < e.length; i++) {
						const l = e[i];
						R(l) ? r(l) : E(l) ? zc(l, t) : Gc(l, t), i < e.length - 1 && (n ? (o && r(","), s()) : o && r(", "))
					}
				}

				function Gc(e, t) {
					if (R(e)) t.push(e);
					else if ($(e)) t.push(t.helper(e));
					else switch (e.type) {
						case 1:
						case 9:
						case 11:
						case 12:
							Gc(e.codegenNode, t);
							break;
						case 2:
							! function(e, t) {
								t.push(JSON.stringify(e.content), e)
							}(e, t);
							break;
						case 4:
							qc(e, t);
							break;
						case 5:
							! function(e, t) {
								const {
									push: n,
									helper: o,
									pure: r
								} = t;
								r && n(jc);
								n(`${o(Xi)}(`), Gc(e.content, t), n(")")
							}(e, t);
							break;
						case 8:
							Jc(e, t);
							break;
						case 3:
							! function(e, t) {
								const {
									push: n,
									helper: o,
									pure: r
								} = t;
								r && n(jc);
								n(`${o(Di)}(${JSON.stringify(e.content)})`, e)
							}(e, t);
							break;
						case 13:
							! function(e, t) {
								const {
									push: n,
									helper: o,
									pure: r
								} = t, {
									tag: s,
									props: i,
									children: l,
									patchFlag: c,
									dynamicProps: a,
									directives: u,
									isBlock: p,
									disableTracking: f,
									isComponent: d
								} = e;
								u && n(o(Ji) + "(");
								p && n(`(${o(Ii)}(${f?"true":""}), `);
								r && n(jc);
								const h = p ? ql(t.inSSR, d) : Gl(t.inSSR, d);
								n(o(h) + "(", e), Kc(function(e) {
									let t = e.length;
									for (; t-- && null == e[t];);
									return e.slice(0, t + 1).map((e => e || "null"))
								}([s, i, l, c, a]), t), n(")"), p && n(")");
								u && (n(", "), Gc(u, t), n(")"))
							}(e, t);
							break;
						case 14:
							! function(e, t) {
								const {
									push: n,
									helper: o,
									pure: r
								} = t, s = R(e.callee) ? e.callee : o(e.callee);
								r && n(jc);
								n(s + "(", e), Kc(e.arguments, t), n(")")
							}(e, t);
							break;
						case 15:
							! function(e, t) {
								const {
									push: n,
									indent: o,
									deindent: r,
									newline: s
								} = t, {
									properties: i
								} = e;
								if (!i.length) return void n("{}", e);
								const l = i.length > 1 || !1;
								n(l ? "{" : "{ "), l && o();
								for (let c = 0; c < i.length; c++) {
									const {
										key: e,
										value: o
									} = i[c];
									Zc(e, t), n(": "), Gc(o, t), c < i.length - 1 && (n(","), s())
								}
								l && r(), n(l ? "}" : " }")
							}(e, t);
							break;
						case 17:
							! function(e, t) {
								zc(e.elements, t)
							}(e, t);
							break;
						case 18:
							! function(e, t) {
								const {
									push: n,
									indent: o,
									deindent: r
								} = t, {
									params: s,
									returns: i,
									body: l,
									newline: c,
									isSlot: a
								} = e;
								a && n(`_${vl[fl]}(`);
								n("(", e), E(s) ? Kc(s, t) : s && Gc(s, t);
								n(") => "), (c || l) && (n("{"), o());
								i ? (c && n("return "), E(i) ? zc(i, t) : Gc(i, t)) : l && Gc(l, t);
								(c || l) && (r(), n("}"));
								a && n(")")
							}(e, t);
							break;
						case 19:
							! function(e, t) {
								const {
									test: n,
									consequent: o,
									alternate: r,
									newline: s
								} = e, {
									push: i,
									indent: l,
									deindent: c,
									newline: a
								} = t;
								if (4 === n.type) {
									const e = !Pl(n.content);
									e && i("("), qc(n, t), e && i(")")
								} else i("("), Gc(n, t), i(")");
								s && l(), t.indentLevel++, s || i(" "), i("? "), Gc(o, t), t.indentLevel--, s && a(),
									s || i(" "), i(": ");
								const u = 19 === r.type;
								u || t.indentLevel++;
								Gc(r, t), u || t.indentLevel--;
								s && c(!0)
							}(e, t);
							break;
						case 20:
							! function(e, t) {
								const {
									push: n,
									helper: o,
									indent: r,
									deindent: s,
									newline: i
								} = t;
								n(`_cache[${e.index}] || (`), e.isVNode && (r(), n(`${o(al)}(-1),`), i());
								n(`_cache[${e.index}] = `), Gc(e.value, t), e.isVNode && (n(","), i(), n(`${o(al)}(1),`),
									i(), n(`_cache[${e.index}]`), s());
								n(")")
							}(e, t);
							break;
						case 21:
							Kc(e.body, t, !0, !1)
					}
				}

				function qc(e, t) {
					const {
						content: n,
						isStatic: o
					} = e;
					t.push(o ? JSON.stringify(n) : n, e)
				}

				function Jc(e, t) {
					for (let n = 0; n < e.children.length; n++) {
						const o = e.children[n];
						R(o) ? t.push(o) : Gc(o, t)
					}
				}

				function Zc(e, t) {
					const {
						push: n
					} = t;
					if (8 === e.type) n("["), Jc(e, t), n("]");
					else if (e.isStatic) {
						n(Pl(e.content) ? e.content : JSON.stringify(e.content), e)
					} else n(`[${e.content}]`, e)
				}
				const Yc = Lc(/^(if|else|else-if)$/, ((e, t, n) => function(e, t, n, o) {
					if (!("else" === t.name || t.exp && t.exp.content.trim())) {
						t.exp = Cl("true", !1, t.exp ? t.exp.loc : e.loc)
					}
					if ("if" === t.name) {
						const r = Qc(e, t),
							s = {
								type: 9,
								loc: e.loc,
								branches: [r]
							};
						if (n.replaceNode(s), o) return o(s, r, !0)
					} else {
						const r = n.parent.children;
						let s = r.indexOf(e);
						for (; s-- >= -1;) {
							const i = r[s];
							if (i && 3 === i.type) n.removeNode(i);
							else {
								if (!i || 2 !== i.type || i.content.trim().length) {
									if (i && 9 === i.type) {
										n.removeNode();
										const r = Qc(e, t);
										i.branches.push(r);
										const s = o && o(i, r, !1);
										Bc(r, n), s && s(), n.currentNode = null
									}
									break
								}
								n.removeNode(i)
							}
						}
					}
				}(e, t, n, ((e, t, o) => {
					const r = n.parent.children;
					let s = r.indexOf(e),
						i = 0;
					for (; s-- >= 0;) {
						const e = r[s];
						e && 9 === e.type && (i += e.branches.length)
					}
					return () => {
						if (o) e.codegenNode = Xc(t, i, n);
						else {
							const o = function(e) {
								for (;;)
									if (19 === e.type) {
										if (19 !== e.alternate.type) return e;
										e = e.alternate
									} else 20 === e.type && (e = e.value)
							}(e.codegenNode);
							o.alternate = Xc(t, i + e.branches.length - 1, n)
						}
					}
				}))));

				function Qc(e, t) {
					const n = 3 === e.tagType;
					return {
						type: 10,
						loc: e.loc,
						condition: "else" === t.name ? void 0 : t.exp,
						children: n && !jl(e, "for") ? e.children : [e],
						userKey: Ul(e, "key"),
						isTemplateIf: n
					}
				}

				function Xc(e, t, n) {
					return e.condition ? Nl(e.condition, ea(e, t, n), wl(n.helper(Di), ['""', "true"])) : ea(e, t, n)
				}

				function ea(e, t, n) {
					const {
						helper: o
					} = n, r = xl("key", Cl(`${t}`, !1, yl, 2)), {
						children: s
					} = e, i = s[0];
					if (1 !== s.length || 1 !== i.type) {
						if (1 === s.length && 11 === i.type) {
							const e = i.codegenNode;
							return Yl(e, r, n), e
						} {
							let t = 64;
							return _l(n, o(Pi), Sl([r]), s, t + "", void 0, void 0, !0, !1, !1, e.loc)
						}
					} {
						const e = i.codegenNode,
							t = 14 === (l = e).type && l.callee === ml ? l.arguments[1].returns : l;
						return 13 === t.type && ec(t, n), Yl(t, r, n), e
					}
					var l
				}
				const ta = Lc("for", ((e, t, n) => {
					const {
						helper: o,
						removeHelper: r
					} = n;
					return function(e, t, n, o) {
						if (!t.exp) return;
						const r = sa(t.exp);
						if (!r) return;
						const {
							scopes: s
						} = n, {
							source: i,
							value: l,
							key: c,
							index: a
						} = r, u = {
							type: 11,
							loc: t.loc,
							source: i,
							valueAlias: l,
							keyAlias: c,
							objectIndexAlias: a,
							parseResult: r,
							children: zl(e) ? e.children : [e]
						};
						n.replaceNode(u), s.vFor++;
						const p = o && o(u);
						return () => {
							s.vFor--, p && p()
						}
					}(e, t, n, (t => {
						const s = wl(o(Zi), [t.source]),
							i = zl(e),
							l = jl(e, "memo"),
							c = Ul(e, "key"),
							a = c && (6 === c.type ? Cl(c.value.content, !0) : c.exp),
							u = c ? xl("key", a) : null,
							p = 4 === t.source.type && t.source.constType > 0,
							f = p ? 64 : c ? 128 : 256;
						return t.codegenNode = _l(n, o(Pi), void 0, s, f + "", void 0, void 0, !0, !
							p, !1, e.loc), () => {
							let c;
							const {
								children: f
							} = t, d = 1 !== f.length || 1 !== f[0].type, h = Kl(e) ? e : i &&
								1 === e.children.length && Kl(e.children[0]) ? e.children[0] :
								null;
							if (h ? (c = h.codegenNode, i && u && Yl(c, u, n)) : d ? c = _l(n, o(
										Pi), u ? Sl([u]) : void 0, e.children, "64", void 0,
									void 0, !0, void 0, !1) : (c = f[0].codegenNode, i && u &&
									Yl(c, u, n), c.isBlock !== !p && (c.isBlock ? (r(Ii), r(ql(n
										.inSSR, c.isComponent))) : r(Gl(n.inSSR, c
										.isComponent))), c.isBlock = !p, c.isBlock ? (o(Ii), o(
										ql(n.inSSR, c.isComponent))) : o(Gl(n.inSSR, c
										.isComponent))), l) {
								const e = Tl(la(t.parseResult, [Cl("_cached")]));
								e.body = {
									type: 21,
									body: [kl(["const _memo = (", l.exp, ")"]), kl([
										"if (_cached", ...a ? [
											" && _cached.key === ", a
										] : [],
										` && ${n.helperString(gl)}(_cached, _memo)) return _cached`
									]), kl(["const _item = ", c]), Cl(
										"_item.memo = _memo"), Cl("return _item")],
									loc: yl
								}, s.arguments.push(e, Cl("_cache"), Cl(String(n.cached++)))
							} else s.arguments.push(Tl(la(t.parseResult), c, !0))
						}
					}))
				}));
				const na = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,
					oa = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/,
					ra = /^\(|\)$/g;

				function sa(e, t) {
					const n = e.loc,
						o = e.content,
						r = o.match(na);
					if (!r) return;
					const [, s, i] = r, l = {
						source: ia(n, i.trim(), o.indexOf(i, s.length)),
						value: void 0,
						key: void 0,
						index: void 0
					};
					let c = s.trim().replace(ra, "").trim();
					const a = s.indexOf(c),
						u = c.match(oa);
					if (u) {
						c = c.replace(oa, "").trim();
						const e = u[1].trim();
						let t;
						if (e && (t = o.indexOf(e, a + c.length), l.key = ia(n, e, t)), u[2]) {
							const r = u[2].trim();
							r && (l.index = ia(n, r, o.indexOf(r, l.key ? t + e.length : a + c.length)))
						}
					}
					return c && (l.value = ia(n, c, a)), l
				}

				function ia(e, t, n) {
					return Cl(t, !1, Il(e, n, t.length))
				}

				function la({
					value: e,
					key: t,
					index: n
				}, o = []) {
					return function(e) {
						let t = e.length;
						for (; t-- && !e[t];);
						return e.slice(0, t + 1).map(((e, t) => e || Cl("_".repeat(t + 1), !1)))
					}([e, t, n, ...o])
				}
				const ca = Cl("undefined", !1),
					aa = (e, t) => {
						if (1 === e.type && (1 === e.tagType || 3 === e.tagType)) {
							const n = jl(e, "slot");
							if (n) return t.scopes.vSlot++, () => {
								t.scopes.vSlot--
							}
						}
					},
					ua = (e, t, n) => Tl(e, t, !1, !0, t.length ? t[0].loc : n);

				function pa(e, t, n = ua) {
					t.helper(fl);
					const {
						children: o,
						loc: r
					} = e, s = [], i = [];
					let l = t.scopes.vSlot > 0 || t.scopes.vFor > 0;
					const c = jl(e, "slot", !0);
					if (c) {
						const {
							arg: e,
							exp: t
						} = c;
						e && !El(e) && (l = !0), s.push(xl(e || Cl("default", !0), n(t, o, r)))
					}
					let a = !1,
						u = !1;
					const p = [],
						f = new Set;
					let d = 0;
					for (let g = 0; g < o.length; g++) {
						const e = o[g];
						let r;
						if (!zl(e) || !(r = jl(e, "slot", !0))) {
							3 !== e.type && p.push(e);
							continue
						}
						if (c) break;
						a = !0;
						const {
							children: h,
							loc: m
						} = e, {
							arg: v = Cl("default", !0),
							exp: y
						} = r;
						let _;
						El(v) ? _ = v ? v.content : "default" : l = !0;
						const b = n(y, h, m);
						let S, x, C;
						if (S = jl(e, "if")) l = !0, i.push(Nl(S.exp, fa(v, b, d++), ca));
						else if (x = jl(e, /^else(-if)?$/, !0)) {
							let e, t = g;
							for (; t-- && (e = o[t], 3 === e.type););
							if (e && zl(e) && jl(e, "if")) {
								o.splice(g, 1), g--;
								let e = i[i.length - 1];
								for (; 19 === e.alternate.type;) e = e.alternate;
								e.alternate = x.exp ? Nl(x.exp, fa(v, b, d++), ca) : fa(v, b, d++)
							}
						} else if (C = jl(e, "for")) {
							l = !0;
							const e = C.parseResult || sa(C.exp);
							e && i.push(wl(t.helper(Zi), [e.source, Tl(la(e), fa(v, b), !0)]))
						} else {
							if (_) {
								if (f.has(_)) continue;
								f.add(_), "default" === _ && (u = !0)
							}
							s.push(xl(v, b))
						}
					}
					if (!c) {
						const e = (e, t) => xl("default", n(e, t, r));
						a ? p.length && p.some((e => ha(e))) && (u || s.push(e(void 0, p))) : s.push(e(void 0, o))
					}
					const h = l ? 2 : da(e.children) ? 3 : 1;
					let m = Sl(s.concat(xl("_", Cl(h + "", !1))), r);
					return i.length && (m = wl(t.helper(Qi), [m, bl(i)])), {
						slots: m,
						hasDynamicSlots: l
					}
				}

				function fa(e, t, n) {
					const o = [xl("name", e), xl("fn", t)];
					return null != n && o.push(xl("key", Cl(String(n), !0))), Sl(o)
				}

				function da(e) {
					for (let t = 0; t < e.length; t++) {
						const n = e[t];
						switch (n.type) {
							case 1:
								if (2 === n.tagType || da(n.children)) return !0;
								break;
							case 9:
								if (da(n.branches)) return !0;
								break;
							case 10:
							case 11:
								if (da(n.children)) return !0
						}
					}
					return !1
				}

				function ha(e) {
					return 2 !== e.type && 12 !== e.type || (2 === e.type ? !!e.content.trim() : ha(e.content))
				}
				const ma = new WeakMap,
					ga = (e, t) => function() {
						if (1 !== (e = t.currentNode).type || 0 !== e.tagType && 1 !== e.tagType) return;
						const {
							tag: n,
							props: o
						} = e, r = 1 === e.tagType;
						let s = r ? function(e, t, n = !1) {
							let {
								tag: o
							} = e;
							const r = ba(o),
								s = Ul(e, "is");
							if (s)
								if (r) {
									const e = 6 === s.type ? s.value && Cl(s.value.content, !0) : s.exp;
									if (e) return wl(t.helper(Ki), [e])
								} else 6 === s.type && s.value.content.startsWith("vue:") && (o = s.value.content.slice(
									4));
							const i = !r && jl(e, "is");
							if (i && i.exp) return wl(t.helper(Ki), [i.exp]);
							const l = Al(o) || t.isBuiltInComponent(o);
							if (l) return n || t.helper(l), l;
							return t.helper(zi), t.components.add(o), Xl(o, "component")
						}(e, t) : `"${n}"`;
						const i = M(s) && s.callee === Ki;
						let l, c, a, u, p, f, d = 0,
							h = i || s === Ri || s === $i || !r && ("svg" === n || "foreignObject" === n);
						if (o.length > 0) {
							const n = va(e, t, void 0, r, i);
							l = n.props, d = n.patchFlag, p = n.dynamicPropNames;
							const o = n.directives;
							f = o && o.length ? bl(o.map((e => function(e, t) {
								const n = [],
									o = ma.get(e);
								o ? n.push(t.helperString(o)) : (t.helper(Gi), t.directives.add(e.name), n
									.push(Xl(e.name, "directive")));
								const {
									loc: r
								} = e;
								e.exp && n.push(e.exp);
								e.arg && (e.exp || n.push("void 0"), n.push(e.arg));
								if (Object.keys(e.modifiers).length) {
									e.arg || (e.exp || n.push("void 0"), n.push("void 0"));
									const t = Cl("true", !1, r);
									n.push(Sl(e.modifiers.map((e => xl(e, t))), r))
								}
								return bl(n, e.loc)
							}(e, t)))) : void 0, n.shouldUseBlock && (h = !0)
						}
						if (e.children.length > 0) {
							s === Mi && (h = !0, d |= 1024);
							if (r && s !== Ri && s !== Mi) {
								const {
									slots: n,
									hasDynamicSlots: o
								} = pa(e, t);
								c = n, o && (d |= 1024)
							} else if (1 === e.children.length && s !== Ri) {
								const n = e.children[0],
									o = n.type,
									r = 5 === o || 8 === o;
								r && 0 === Ac(n, t) && (d |= 1), c = r || 2 === o ? n : e.children
							} else c = e.children
						}
						0 !== d && (a = String(d), p && p.length && (u = function(e) {
							let t = "[";
							for (let n = 0, o = e.length; n < o; n++) t += JSON.stringify(e[n]), n < o - 1 && (
								t += ", ");
							return t + "]"
						}(p))), e.codegenNode = _l(t, s, l, c, a, u, f, !!h, !1, r, e.loc)
					};

				function va(e, t, n = e.props, o, r, s = !1) {
					const {
						tag: i,
						loc: l,
						children: c
					} = e;
					let a = [];
					const u = [],
						p = [],
						f = c.length > 0;
					let d = !1,
						h = 0,
						m = !1,
						g = !1,
						v = !1,
						y = !1,
						_ = !1,
						b = !1;
					const S = [],
						C = e => {
							a.length && (u.push(Sl(ya(a), l)), a = []), e && u.push(e)
						},
						k = ({
							key: e,
							value: n
						}) => {
							if (El(e)) {
								const s = e.content,
									i = x(s);
								if (!i || o && !r || "onclick" === s.toLowerCase() || "onUpdate:modelValue" === s || U(s) ||
									(y = !0), i && U(s) && (b = !0), 20 === n.type || (4 === n.type || 8 === n.type) && Ac(n,
										t) > 0) return;
								"ref" === s ? m = !0 : "class" === s ? g = !0 : "style" === s ? v = !0 : "key" === s || S
									.includes(s) || S.push(s), !o || "class" !== s && "style" !== s || S.includes(s) || S
									.push(s)
							} else _ = !0
						};
					for (let x = 0; x < n.length; x++) {
						const r = n[x];
						if (6 === r.type) {
							const {
								loc: e,
								name: n,
								value: o
							} = r;
							let s = !0;
							if ("ref" === n && (m = !0, t.scopes.vFor > 0 && a.push(xl(Cl("ref_for", !0), Cl("true")))),
								"is" === n && (ba(i) || o && o.content.startsWith("vue:"))) continue;
							a.push(xl(Cl(n, !0, Il(e, 0, n.length)), Cl(o ? o.content : "", s, o ? o.loc : e)))
						} else {
							const {
								name: n,
								arg: c,
								exp: h,
								loc: m
							} = r, g = "bind" === n, v = "on" === n;
							if ("slot" === n) continue;
							if ("once" === n || "memo" === n) continue;
							if ("is" === n || g && Dl(c, "is") && ba(i)) continue;
							if (v && s) continue;
							if ((g && Dl(c, "key") || v && f && Dl(c, "vue:before-update")) && (d = !0), g && Dl(c, "ref") &&
								t.scopes.vFor > 0 && a.push(xl(Cl("ref_for", !0), Cl("true"))), !c && (g || v)) {
								_ = !0, h && (g ? (C(), u.push(h)) : C({
									type: 14,
									loc: m,
									callee: t.helper(sl),
									arguments: o ? [h] : [h, "true"]
								}));
								continue
							}
							const y = t.directiveTransforms[n];
							if (y) {
								const {
									props: n,
									needRuntime: o
								} = y(r, e, t);
								!s && n.forEach(k), v && c && !El(c) ? C(Sl(n, l)) : a.push(...n), o && (p.push(r), $(o) &&
									ma.set(r, o))
							} else D(n) || (p.push(r), f && (d = !0))
						}
					}
					let w;
					if (u.length ? (C(), w = u.length > 1 ? wl(t.helper(el), u, l) : u[0]) : a.length && (w = Sl(ya(a), l)),
						_ ? h |= 16 : (g && !o && (h |= 2), v && !o && (h |= 4), S.length && (h |= 8), y && (h |= 32)), d ||
						0 !== h && 32 !== h || !(m || b || p.length > 0) || (h |= 512), !t.inSSR && w) switch (w.type) {
						case 15:
							let e = -1,
								n = -1,
								o = !1;
							for (let t = 0; t < w.properties.length; t++) {
								const r = w.properties[t].key;
								El(r) ? "class" === r.content ? e = t : "style" === r.content && (n = t) : r
									.isHandlerKey || (o = !0)
							}
							const r = w.properties[e],
								s = w.properties[n];
							o ? w = wl(t.helper(ol), [w]) : (r && !El(r.value) && (r.value = wl(t.helper(tl), [r
								.value
							])), s && (v || 4 === s.value.type && "[" === s.value.content.trim()[0] ||
								17 === s.value.type) && (s.value = wl(t.helper(nl), [s.value])));
							break;
						case 14:
							break;
						default:
							w = wl(t.helper(ol), [wl(t.helper(rl), [w])])
					}
					return {
						props: w,
						directives: p,
						patchFlag: h,
						dynamicPropNames: S,
						shouldUseBlock: d
					}
				}

				function ya(e) {
					const t = new Map,
						n = [];
					for (let o = 0; o < e.length; o++) {
						const r = e[o];
						if (8 === r.key.type || !r.key.isStatic) {
							n.push(r);
							continue
						}
						const s = r.key.content,
							i = t.get(s);
						i ? ("style" === s || "class" === s || x(s)) && _a(i, r) : (t.set(s, r), n.push(r))
					}
					return n
				}

				function _a(e, t) {
					17 === e.value.type ? e.value.elements.push(t.value) : e.value = bl([e.value, t.value], e.loc)
				}

				function ba(e) {
					return "component" === e || "Component" === e
				}
				const Sa = (e, t) => {
					if (Kl(e)) {
						const {
							children: n,
							loc: o
						} = e, {
							slotName: r,
							slotProps: s
						} = function(e, t) {
							let n, o = '"default"';
							const r = [];
							for (let s = 0; s < e.props.length; s++) {
								const t = e.props[s];
								6 === t.type ? t.value && ("name" === t.name ? o = JSON.stringify(t.value.content) : (t
										.name = z(t.name), r.push(t))) : "bind" === t.name && Dl(t.arg, "name") ? t
									.exp && (o = t.exp) : ("bind" === t.name && t.arg && El(t.arg) && (t.arg.content = z(
										t.arg.content)), r.push(t))
							}
							if (r.length > 0) {
								const {
									props: o,
									directives: s
								} = va(e, t, r, !1, !1);
								n = o
							}
							return {
								slotName: o,
								slotProps: n
							}
						}(e, t), i = [t.prefixIdentifiers ? "_ctx.$slots" : "$slots", r, "{}", "undefined", "true"];
						let l = 2;
						s && (i[2] = s, l = 3), n.length && (i[3] = Tl([], n, !1, !1, o), l = 4), t.scopeId && !t
							.slotted && (l = 5), i.splice(l), e.codegenNode = wl(t.helper(Yi), i, o)
					}
				};
				const xa = /^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,
					Ca = (e, t, n, o) => {
						const {
							loc: r,
							modifiers: s,
							arg: i
						} = e;
						let l;
						if (4 === i.type)
							if (i.isStatic) {
								let e = i.content;
								e.startsWith("vue:") && (e = `vnode-${e.slice(4)}`);
								l = Cl(0 !== t.tagType || e.startsWith("vnode") || !/[A-Z]/.test(e) ? J(z(e)) : `on:${e}`, !
									0, i.loc)
							} else l = kl([`${n.helperString(cl)}(`, i, ")"]);
						else l = i, l.children.unshift(`${n.helperString(cl)}(`), l.children.push(")");
						let c = e.exp;
						c && !c.content.trim() && (c = void 0);
						let a = n.cacheHandlers && !c && !n.inVOnce;
						if (c) {
							const e = Vl(c.content),
								t = !(e || xa.test(c.content)),
								n = c.content.includes(";");
							(t || a && e) && (c = kl([`${t?"$event":"(...args)"} => ${n?"{":"("}`, c, n ? "}" : ")"]))
						}
						let u = {
							props: [xl(l, c || Cl("() => {}", !1, r))]
						};
						return o && (u = o(u)), a && (u.props[0].value = n.cache(u.props[0].value)), u.props.forEach((e => e
							.key.isHandlerKey = !0)), u
					},
					ka = (e, t, n) => {
						const {
							exp: o,
							modifiers: r,
							loc: s
						} = e, i = e.arg;
						return 4 !== i.type ? (i.children.unshift("("), i.children.push(') || ""')) : i.isStatic || (i
							.content = `${i.content} || ""`), r.includes("camel") && (4 === i.type ? i.content = i
							.isStatic ? z(i.content) : `${n.helperString(il)}(${i.content})` : (i.children.unshift(
								`${n.helperString(il)}(`), i.children.push(")"))), n.inSSR || (r.includes("prop") && wa(
							i, "."), r.includes("attr") && wa(i, "^")), !o || 4 === o.type && !o.content.trim() ? {
							props: [xl(i, Cl("", !0, s))]
						} : {
							props: [xl(i, o)]
						}
					},
					wa = (e, t) => {
						4 === e.type ? e.content = e.isStatic ? t + e.content : `\`${t}\${${e.content}}\`` : (e.children
							.unshift(`'${t}' + (`), e.children.push(")"))
					},
					Ta = (e, t) => {
						if (0 === e.type || 1 === e.type || 11 === e.type || 10 === e.type) return () => {
							const n = e.children;
							let o, r = !1;
							for (let e = 0; e < n.length; e++) {
								const t = n[e];
								if (Hl(t)) {
									r = !0;
									for (let r = e + 1; r < n.length; r++) {
										const s = n[r];
										if (!Hl(s)) {
											o = void 0;
											break
										}
										o || (o = n[e] = kl([t], t.loc)), o.children.push(" + ", s), n.splice(r, 1),
											r--
									}
								}
							}
							if (r && (1 !== n.length || 0 !== e.type && (1 !== e.type || 0 !== e.tagType || e.props
									.find((e => 7 === e.type && !t.directiveTransforms[e.name])))))
								for (let e = 0; e < n.length; e++) {
									const o = n[e];
									if (Hl(o) || 8 === o.type) {
										const r = [];
										2 === o.type && " " === o.content || r.push(o), t.ssr || 0 !== Ac(o, t) || r
											.push("1"), n[e] = {
												type: 12,
												content: o,
												loc: o.loc,
												codegenNode: wl(t.helper(Hi), r)
											}
									}
								}
						}
					},
					Na = new WeakSet,
					Ea = (e, t) => {
						if (1 === e.type && jl(e, "once", !0)) {
							if (Na.has(e) || t.inVOnce) return;
							return Na.add(e), t.inVOnce = !0, t.helper(al), () => {
								t.inVOnce = !1;
								const e = t.currentNode;
								e.codegenNode && (e.codegenNode = t.cache(e.codegenNode, !0))
							}
						}
					},
					Oa = (e, t, n) => {
						const {
							exp: o,
							arg: r
						} = e;
						if (!o) return Aa();
						const s = o.loc.source,
							i = 4 === o.type ? o.content : s,
							l = n.bindingMetadata[s];
						if ("props" === l || "props-aliased" === l) return Aa();
						if (!i.trim() || !Vl(i)) return Aa();
						const c = r || Cl("modelValue", !0),
							a = r ? El(r) ? `onUpdate:${z(r.content)}` : kl(['"onUpdate:" + ', r]) : "onUpdate:modelValue";
						let u;
						u = kl([`${n.isTS?"($event: any)":"$event"} => ((`, o, ") = $event)"]);
						const p = [xl(c, e.exp), xl(a, u)];
						if (e.modifiers.length && 1 === t.tagType) {
							const t = e.modifiers.map((e => (Pl(e) ? e : JSON.stringify(e)) + ": true")).join(", "),
								n = r ? El(r) ? `${r.content}Modifiers` : kl([r, ' + "Modifiers"']) : "modelModifiers";
							p.push(xl(n, Cl(`{ ${t} }`, !1, e.loc, 2)))
						}
						return Aa(p)
					};

				function Aa(e = []) {
					return {
						props: e
					}
				}
				const Fa = new WeakSet,
					Pa = (e, t) => {
						if (1 === e.type) {
							const n = jl(e, "memo");
							if (!n || Fa.has(e)) return;
							return Fa.add(e), () => {
								const o = e.codegenNode || t.currentNode.codegenNode;
								o && 13 === o.type && (1 !== e.tagType && ec(o, t), e.codegenNode = wl(t.helper(ml), [n
									.exp, Tl(void 0, o), "_cache", String(t.cached++)
								]))
							}
						}
					};

				function Ra(e, t = {}) {
					const n = t.onError || Oi,
						o = "module" === t.mode;
					!0 === t.prefixIdentifiers ? n(Fi(47)) : o && n(Fi(48));
					t.cacheHandlers && n(Fi(49)), t.scopeId && !o && n(Fi(50));
					const r = R(e) ? rc(e, t) : e,
						[s, i] = [
							[Ea, Yc, Pa, ta, Sa, ga, aa, Ta], {
								on: Ca,
								bind: ka,
								model: Oa
							}
						];
					return Ic(r, k({}, t, {
						prefixIdentifiers: false,
						nodeTransforms: [...s, ...t.nodeTransforms || []],
						directiveTransforms: k({}, i, t.directiveTransforms || {})
					})), Hc(r, k({}, t, {
						prefixIdentifiers: false
					}))
				}
				const $a = Symbol(""),
					Ma = Symbol(""),
					Va = Symbol(""),
					Ia = Symbol(""),
					Ba = Symbol(""),
					La = Symbol(""),
					ja = Symbol(""),
					Ua = Symbol(""),
					Da = Symbol(""),
					Ha = Symbol("");
				var Wa;
				let za;
				Wa = {
					[$a]: "vModelRadio",
					[Ma]: "vModelCheckbox",
					[Va]: "vModelText",
					[Ia]: "vModelSelect",
					[Ba]: "vModelDynamic",
					[La]: "withModifiers",
					[ja]: "withKeys",
					[Ua]: "vShow",
					[Da]: "Transition",
					[Ha]: "TransitionGroup"
				}, Object.getOwnPropertySymbols(Wa).forEach((e => {
					vl[e] = Wa[e]
				}));
				const Ka = t("style,iframe,script,noscript", !0),
					Ga = {
						isVoidTag: p,
						isNativeTag: e => a(e) || u(e),
						isPreTag: e => "pre" === e,
						decodeEntities: function(e, t = !1) {
							return za || (za = document.createElement("div")), t ? (za.innerHTML =
								`<div foo="${e.replace(/"/g,"&quot;")}">`, za.children[0].getAttribute("foo")) : (za
								.innerHTML = e, za.textContent)
						},
						isBuiltInComponent: e => Ol(e, "Transition") ? Da : Ol(e, "TransitionGroup") ? Ha : void 0,
						getNamespace(e, t) {
							let n = t ? t.ns : 0;
							if (t && 2 === n)
								if ("annotation-xml" === t.tag) {
									if ("svg" === e) return 1;
									t.props.some((e => 6 === e.type && "encoding" === e.name && null != e.value && (
										"text/html" === e.value.content || "application/xhtml+xml" === e.value
										.content))) && (n = 0)
								} else /^m(?:[ions]|text)$/.test(t.tag) && "mglyph" !== e && "malignmark" !== e && (n = 0);
							else t && 1 === n && ("foreignObject" !== t.tag && "desc" !== t.tag && "title" !== t.tag || (n =
								0));
							if (0 === n) {
								if ("svg" === e) return 1;
								if ("math" === e) return 2
							}
							return n
						},
						getTextMode({
							tag: e,
							ns: t
						}) {
							if (0 === t) {
								if ("textarea" === e || "title" === e) return 1;
								if (Ka(e)) return 2
							}
							return 0
						}
					},
					qa = (e, t) => {
						const n = l(e);
						return Cl(JSON.stringify(n), !1, t, 3)
					};
				const Ja = t("passive,once,capture"),
					Za = t("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),
					Ya = t("left,right"),
					Qa = t("onkeyup,onkeydown,onkeypress", !0),
					Xa = (e, t) => El(e) && "onclick" === e.content.toLowerCase() ? Cl(t, !0) : 4 !== e.type ? kl(["(", e,
						`) === "onClick" ? "${t}" : (`, e, ")"
					]) : e,
					eu = (e, t) => {
						1 !== e.type || 0 !== e.tagType || "script" !== e.tag && "style" !== e.tag || t.removeNode()
					},
					tu = [e => {
						1 === e.type && e.props.forEach(((t, n) => {
							6 === t.type && "style" === t.name && t.value && (e.props[n] = {
								type: 7,
								name: "bind",
								arg: Cl("style", !0, t.loc),
								exp: qa(t.value.content, t.loc),
								modifiers: [],
								loc: t.loc
							})
						}))
					}],
					nu = {
						cloak: () => ({
							props: []
						}),
						html: (e, t, n) => {
							const {
								exp: o,
								loc: r
							} = e;
							return t.children.length && (t.children.length = 0), {
								props: [xl(Cl("innerHTML", !0, r), o || Cl("", !0))]
							}
						},
						text: (e, t, n) => {
							const {
								exp: o,
								loc: r
							} = e;
							return t.children.length && (t.children.length = 0), {
								props: [xl(Cl("textContent", !0), o ? Ac(o, n) > 0 ? o : wl(n.helperString(Xi), [o],
									r) : Cl("", !0))]
							}
						},
						model: (e, t, n) => {
							const o = Oa(e, t, n);
							if (!o.props.length || 1 === t.tagType) return o;
							const {
								tag: r
							} = t, s = n.isCustomElement(r);
							if ("input" === r || "textarea" === r || "select" === r || s) {
								let e = Va,
									i = !1;
								if ("input" === r || s) {
									const n = Ul(t, "type");
									if (n) {
										if (7 === n.type) e = Ba;
										else if (n.value) switch (n.value.content) {
											case "radio":
												e = $a;
												break;
											case "checkbox":
												e = Ma;
												break;
											case "file":
												i = !0
										}
									} else(function(e) {
										return e.props.some((e => !(7 !== e.type || "bind" !== e.name || e.arg &&
											4 === e.arg.type && e.arg.isStatic)))
									})(t) && (e = Ba)
								} else "select" === r && (e = Ia);
								i || (o.needRuntime = n.helper(e))
							}
							return o.props = o.props.filter((e => !(4 === e.key.type && "modelValue" === e.key
								.content))), o
						},
						on: (e, t, n) => Ca(e, t, n, (t => {
							const {
								modifiers: o
							} = e;
							if (!o.length) return t;
							let {
								key: r,
								value: s
							} = t.props[0];
							const {
								keyModifiers: i,
								nonKeyModifiers: l,
								eventOptionModifiers: c
							} = ((e, t, n, o) => {
								const r = [],
									s = [],
									i = [];
								for (let l = 0; l < t.length; l++) {
									const n = t[l];
									Ja(n) ? i.push(n) : Ya(n) ? El(e) ? Qa(e.content) ? r.push(n) : s.push(
										n) : (r.push(n), s.push(n)) : Za(n) ? s.push(n) : r.push(n)
								}
								return {
									keyModifiers: r,
									nonKeyModifiers: s,
									eventOptionModifiers: i
								}
							})(r, o);
							if (l.includes("right") && (r = Xa(r, "onContextmenu")), l.includes("middle") && (r =
									Xa(r, "onMouseup")), l.length && (s = wl(n.helper(La), [s, JSON.stringify(
									l)])), !i.length || El(r) && !Qa(r.content) || (s = wl(n.helper(ja), [s, JSON
									.stringify(i)
								])), c.length) {
								const e = c.map(q).join("");
								r = El(r) ? Cl(`${r.content}${e}`, !0) : kl(["(", r, `) + "${e}"`])
							}
							return {
								props: [xl(r, s)]
							}
						})),
						show: (e, t, n) => ({
							props: [],
							needRuntime: n.helper(Ua)
						})
					};
				const ou = Object.create(null);

				function ru(e, t) {
					if (!R(e)) {
						if (!e.nodeType) return _;
						e = e.innerHTML
					}
					const n = e,
						o = ou[n];
					if (o) return o;
					if ("#" === e[0]) {
						const t = document.querySelector(e);
						e = t ? t.innerHTML : ""
					}
					const r = k({
						hoistStatic: !0,
						onError: void 0,
						onWarn: _
					}, t);
					r.isCustomElement || "undefined" == typeof customElements || (r.isCustomElement = e => !!customElements
						.get(e));
					const {
						code: s
					} = function(e, t = {}) {
						return Ra(e, k({}, Ga, t, {
							nodeTransforms: [eu, ...tu, ...t.nodeTransforms || []],
							directiveTransforms: k({}, nu, t.directiveTransforms || {}),
							transformHoist: null
						}))
					}(e, r), i = new Function(s)();
					return i._rc = !0, ou[n] = i
				}
				return ts(ru), e.BaseTransition = Ln, e.Comment = _r, e.EffectScope = oe, e.Fragment = vr, e.KeepAlive = Zn,
					e.ReactiveEffect = me, e.Static = br, e.Suspense = xn, e.Teleport = mr, e.Text = yr, e.Transition = Rs, e
					.TransitionGroup = Qs, e.VueElement = Es, e.assertNumber = function(e, t) {}, e
					.callWithAsyncErrorHandling = Ut, e.callWithErrorHandling = jt, e.camelize = z, e.capitalize = q, e
					.cloneVNode = Ir, e.compatUtils = null, e.compile = ru, e.computed = is, e.createApp = (...e) => {
						const t = Ci().createApp(...e),
							{
								mount: n
							} = t;
						return t.mount = e => {
							const o = Ni(e);
							if (!o) return;
							const r = t._component;
							P(r) || r.render || r.template || (r.template = o.innerHTML), o.innerHTML = "";
							const s = n(o, !1, o instanceof SVGElement);
							return o instanceof Element && (o.removeAttribute("v-cloak"), o.setAttribute("data-v-app",
								"")), s
						}, t
					}, e.createBlock = Er, e.createCommentVNode = function(e = "", t = !1) {
						return t ? (Cr(), Er(_r, null, e)) : Mr(_r, null, e)
					}, e.createElementBlock = function(e, t, n, o, r, s) {
						return Nr($r(e, t, n, o, r, s, !0))
					}, e.createElementVNode = $r, e.createHydrationRenderer = lr, e.createPropsRestProxy = function(e, t) {
						const n = {};
						for (const o in e) t.includes(o) || Object.defineProperty(n, o, {
							enumerable: !0,
							get: () => e[o]
						});
						return n
					}, e.createRenderer = ir, e.createSSRApp = (...e) => {
						const t = ki().createApp(...e),
							{
								mount: n
							} = t;
						return t.mount = e => {
							const t = Ni(e);
							if (t) return n(t, !0, t instanceof SVGElement)
						}, t
					}, e.createSlots = function(e, t) {
						for (let n = 0; n < t.length; n++) {
							const o = t[n];
							if (E(o))
								for (let t = 0; t < o.length; t++) e[o[t].name] = o[t].fn;
							else o && (e[o.name] = o.key ? (...e) => {
								const t = o.fn(...e);
								return t && (t.key = o.key), t
							} : o.fn)
						}
						return e
					}, e.createStaticVNode = function(e, t) {
						const n = Mr(br, null, e);
						return n.staticCount = t, n
					}, e.createTextVNode = Br, e.createVNode = Mr, e.customRef = function(e) {
						return new Mt(e)
					}, e.defineAsyncComponent = function(e) {
						P(e) && (e = {
							loader: e
						});
						const {
							loader: t,
							loadingComponent: n,
							errorComponent: o,
							delay: r = 200,
							timeout: s,
							suspensible: i = !0,
							onError: l
						} = e;
						let c, a = null,
							u = 0;
						const p = () => {
							let e;
							return a || (e = a = t().catch((e => {
								if (e = e instanceof Error ? e : new Error(String(e)), l)
									return new Promise(((t, n) => {
										l(e, (() => t((u++, a = null, p()))), (() => n(e)),
											u + 1)
									}));
								throw e
							})).then((t => e !== a && a ? a : (t && (t.__esModule || "Module" === t[Symbol
								.toStringTag]) && (t = t.default), c = t, t))))
						};
						return Kn({
							name: "AsyncComponentWrapper",
							__asyncLoader: p,
							get __asyncResolved() {
								return c
							},
							setup() {
								const e = Kr;
								if (c) return () => qn(c, e);
								const t = t => {
									a = null, Dt(t, e, 13, !o)
								};
								if (i && e.suspense) return p().then((t => () => qn(t, e))).catch((e => (t(e), () =>
									o ? Mr(o, {
										error: e
									}) : null)));
								const l = Ot(!1),
									u = Ot(),
									f = Ot(!!r);
								return r && setTimeout((() => {
									f.value = !1
								}), r), null != s && setTimeout((() => {
									if (!l.value && !u.value) {
										const e = new Error(`Async component timed out after ${s}ms.`);
										t(e), u.value = e
									}
								}), s), p().then((() => {
									l.value = !0, e.parent && Jn(e.parent.vnode) && Xt(e.parent.update)
								})).catch((e => {
									t(e), u.value = e
								})), () => l.value && c ? qn(c, e) : u.value && o ? Mr(o, {
									error: u.value
								}) : n && !f.value ? Mr(n) : void 0
							}
						})
					}, e.defineComponent = Kn, e.defineCustomElement = Ts, e.defineEmits = function() {
						return null
					}, e.defineExpose = function(e) {}, e.defineProps = function() {
						return null
					}, e.defineSSRCustomElement = e => Ts(e, Ti), e.effect = function(e, t) {
						e.effect && (e = e.effect.fn);
						const n = new me(e);
						t && (k(n, t), t.scope && re(n, t.scope)), t && t.lazy || n.run();
						const o = n.run.bind(n);
						return o.effect = n, o
					}, e.effectScope = function(e) {
						return new oe(e)
					}, e.getCurrentInstance = Gr, e.getCurrentScope = se, e.getTransitionRawChildren = zn, e
					.guardReactiveProps = Vr, e.h = cs, e.handleError = Dt, e.hydrate = Ti, e.initCustomFormatter =
					function() {}, e.initDirectivesForSSR = Ei, e.inject = On, e.isMemoSame = us, e.isProxy = St, e
					.isReactive = yt, e.isReadonly = _t, e.isRef = Et, e.isRuntimeOnly = () => !Yr, e.isShallow = bt, e
					.isVNode = Or, e.markRaw = Ct, e.mergeDefaults = function(e, t) {
						const n = E(e) ? e.reduce(((e, t) => (e[t] = {}, e)), {}) : e;
						for (const o in t) {
							const e = n[o];
							e ? E(e) || P(e) ? n[o] = {
								type: e,
								default: t[o]
							} : e.default = t[o] : null === e && (n[o] = {
								default: t[o]
							})
						}
						return n
					}, e.mergeProps = Dr, e.nextTick = Qt, e.normalizeClass = c, e.normalizeProps = function(e) {
						if (!e) return null;
						let {
							class: t,
							style: n
						} = e;
						return t && !R(t) && (e.class = c(t)), n && (e.style = o(n)), e
					}, e.normalizeStyle = o, e.onActivated = Qn, e.onBeforeMount = io, e.onBeforeUnmount = uo, e
					.onBeforeUpdate = co, e.onDeactivated = Xn, e.onErrorCaptured = go, e.onMounted = lo, e.onRenderTracked =
					mo, e.onRenderTriggered = ho, e.onScopeDispose = function(e) {
						ne && ne.cleanups.push(e)
					}, e.onServerPrefetch = fo, e.onUnmounted = po, e.onUpdated = ao, e.openBlock = Cr, e.popScopeId =
					function() {
						dn = null
					}, e.provide = En, e.proxyRefs = $t, e.pushScopeId = function(e) {
						dn = e
					}, e.queuePostFlushCb = tn, e.reactive = ht, e.readonly = gt, e.ref = Ot, e.registerRuntimeCompiler = ts,
					e.render = wi, e.renderList = function(e, t, n, o) {
						let r;
						const s = n && n[o];
						if (E(e) || R(e)) {
							r = new Array(e.length);
							for (let n = 0, o = e.length; n < o; n++) r[n] = t(e[n], n, void 0, s && s[n])
						} else if ("number" == typeof e) {
							r = new Array(e);
							for (let n = 0; n < e; n++) r[n] = t(n + 1, n, void 0, s && s[n])
						} else if (M(e))
							if (e[Symbol.iterator]) r = Array.from(e, ((e, n) => t(e, n, void 0, s && s[n])));
							else {
								const n = Object.keys(e);
								r = new Array(n.length);
								for (let o = 0, i = n.length; o < i; o++) {
									const i = n[o];
									r[o] = t(e[i], i, o, s && s[o])
								}
							}
						else r = [];
						return n && (n[o] = r), r
					}, e.renderSlot = function(e, t, n = {}, o, r) {
						if (fn.isCE || fn.parent && Gn(fn.parent) && fn.parent.isCE) return "default" !== t && (n.name = t),
							Mr("slot", n, o && o());
						let s = e[t];
						s && s._c && (s._d = !1), Cr();
						const i = s && xo(s(n)),
							l = Er(vr, {
								key: n.key || i && i.key || `_${t}`
							}, i || (o ? o() : []), i && 1 === e._ ? 64 : -2);
						return !r && l.scopeId && (l.slotScopeIds = [l.scopeId + "-s"]), s && s._c && (s._d = !0), l
					}, e.resolveComponent = function(e, t) {
						return bo(yo, e, !0, t) || e
					}, e.resolveDirective = function(e) {
						return bo("directives", e)
					}, e.resolveDynamicComponent = function(e) {
						return R(e) ? bo(yo, e, !1) || e : e || _o
					}, e.resolveFilter = null, e.resolveTransitionHooks = Un, e.setBlockTracking = Tr, e.setDevtoolsHook =
					function t(n, o) {
						var r, s;
						if (e.devtools = n, e.devtools) e.devtools.enabled = !0, cn.forEach((({
							event: t,
							args: n
						}) => e.devtools.emit(t, ...n))), cn = [];
						else if ("undefined" != typeof window && window.HTMLElement && !(null === (s = null === (r = window
									.navigator) || void 0 === r ? void 0 : r.userAgent) || void 0 === s ? void 0 : s
								.includes("jsdom"))) {
							(o.__VUE_DEVTOOLS_HOOK_REPLAY__ = o.__VUE_DEVTOOLS_HOOK_REPLAY__ || []).push((e => {
								t(e, o)
							})), setTimeout((() => {
								e.devtools || (o.__VUE_DEVTOOLS_HOOK_REPLAY__ = null, cn = [])
							}), 3e3)
						} else cn = []
					}, e.setTransitionHooks = Wn, e.shallowReactive = mt, e.shallowReadonly = function(e) {
						return vt(e, !0, je, ct, ft)
					}, e.shallowRef = function(e) {
						return At(e, !0)
					}, e.ssrContextKey = as, e.ssrUtils = null, e.stop = function(e) {
						e.effect.stop()
					}, e.toDisplayString = e => R(e) ? e : null == e ? "" : E(e) || M(e) && (e.toString === I || !P(e
						.toString)) ? JSON.stringify(e, g, 2) : String(e), e.toHandlerKey = J, e.toHandlers = function(e,
						t) {
						const n = {};
						for (const o in e) n[t && /[A-Z]/.test(o) ? `on:${o}` : J(o)] = e[o];
						return n
					}, e.toRaw = xt, e.toRef = It, e.toRefs = function(e) {
						const t = E(e) ? new Array(e.length) : {};
						for (const n in e) t[n] = It(e, n);
						return t
					}, e.transformVNodeArgs = function(e) {}, e.triggerRef = function(e) {
						Nt(e)
					}, e.unref = Pt, e.useAttrs = function() {
						return ls().attrs
					}, e.useCssModule = function(e = "$style") {
						return v
					}, e.useCssVars = function(e) {
						const t = Gr();
						if (!t) return;
						const n = t.ut = (n = e(t.proxy)) => {
								Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach((e => As(e, n)))
							},
							o = () => {
								const o = e(t.proxy);
								Os(t.subTree, o), n(o)
							};
						An(o), lo((() => {
							const e = new MutationObserver(o);
							e.observe(t.subTree.el.parentNode, {
								childList: !0
							}), po((() => e.disconnect()))
						}))
					}, e.useSSRContext = () => {}, e.useSlots = function() {
						return ls().slots
					}, e.useTransitionState = In, e.vModelCheckbox = ii, e.vModelDynamic = di, e.vModelRadio = ci, e
					.vModelSelect = ai, e.vModelText = si, e.vShow = yi, e.version = ps, e.warn = function(e, ...t) {}, e
					.watch = Pn, e.watchEffect = function(e, t) {
						return Rn(e, null, t)
					}, e.watchPostEffect = An, e.watchSyncEffect = function(e, t) {
						return Rn(e, null, {
							flush: "sync"
						})
					}, e.withAsyncContext = function(e) {
						const t = Gr();
						let n = e();
						return Jr(), V(n) && (n = n.catch((e => {
							throw qr(t), e
						}))), [n, () => qr(t)]
					}, e.withCtx = mn, e.withDefaults = function(e, t) {
						return null
					}, e.withDirectives = function(e, t) {
						const n = fn;
						if (null === n) return e;
						const o = rs(n) || n.proxy,
							r = e.dirs || (e.dirs = []);
						for (let s = 0; s < t.length; s++) {
							let [e, n, i, l = v] = t[s];
							e && (P(e) && (e = {
								mounted: e,
								updated: e
							}), e.deep && Vn(n), r.push({
								dir: e,
								instance: o,
								value: n,
								oldValue: void 0,
								arg: i,
								modifiers: l
							}))
						}
						return e
					}, e.withKeys = (e, t) => n => {
						if (!("key" in n)) return;
						const o = G(n.key);
						return t.some((e => e === o || vi[e] === o)) ? e(n) : void 0
					}, e.withMemo = function(e, t, n, o) {
						const r = n[o];
						if (r && us(r, e)) return r;
						const s = t();
						return s.memo = e.slice(), n[o] = s
					}, e.withModifiers = (e, t) => (n, ...o) => {
						for (let e = 0; e < t.length; e++) {
							const o = gi[t[e]];
							if (o && o(n, t)) return
						}
						return e(n, ...o)
					}, e.withScopeId = e => mn, Object.defineProperty(e, "__esModule", {
						value: !0
					}), e
			}({});
		</script>
		<script>
			String.prototype.replaceText = function() {
				const r = {
					'（': '(',
					'）': ')',
					'：': ':',
				}
				return this.trim().replace(/[（）：\s]/g, (a) => {
					return r[a] ? r[a] : ''
				})
			}
			Math.randomInt = function(min, max) {
				return Math.floor(Math.random() * (max - min)) + min
			}
		</script>
		<style>
			* {
				margin: 0;
				padding: 0;
			}

			input {
				border: unset;
			}

			a {
				text-decoration: unset !important;
				color: unset !important;
			}

			p {
				min-width: 8px;
				min-height: 20px;
			}

			.hidden {
				position: absolute;
				bottom: -10px;
			}

			.row,
			.text {
				display: flex;
				flex-direction: row;
				white-space: pre-wrap;
			}

			.text {
				white-space: nowrap;
				align-items: center;
			}

			.message {
				position: fixed;
				top: 0;
				bottom: 0;
				left: 0;
				right: 0;
				z-index: 999;
				display: flex;
				flex-direction: column;
				justify-content: center;
				align-items: center;
			}

			.message>div {
				padding: 10px 20px;
				background: rgba(0, 0, 0, 0.8);
				color: #fff;
				border-radius: 20px;
			}

			.div-input {
				min-width: 16px;
				outline: none !important;
				border-bottom: 1px solid #aaa;
				padding-right: 4px;
			}

			.width {
				width: 100%;
			}

			.add,
			.cut,
			.copy {
				border: 1px solid;
				width: 15px;
				height: 15px;
				margin: 2px;
				position: relative;
			}

			.add::before,
			.cut::before {
				content: '';
				background: black;
				position: absolute;
				top: 49%;
				bottom: 49%;
				left: 10%;
				right: 11%;
			}

			.add::after {
				content: '';
				background: black;
				position: absolute;
				left: 49%;
				right: 49%;
				top: 10%;
				bottom: 11%;
			}

			.copy {
				border: unset;
			}

			.copy::before {
				content: '';
				background: #fff;
				position: absolute;
				border: 1px solid;
				top: 0;
				left: 0;
				bottom: 20%;
				right: 20%;
			}

			.copy::after {
				content: '';
				background: #fff;
				position: absolute;
				border: 1px solid;
				top: 20%;
				left: 20%;
				bottom: 0;
				right: 0;
			}

			.add2 {
				width: 30px;
			}

			.child {
				margin-left: 20px;
			}

			.left {
				position: fixed;
				overflow-y: auto;
				width: 200px;
				max-height: 100vh;
				z-index: 100;
				background: #fff;
			}

			.side {
				background: #fff;
				flex-shrink: 0;
				position: relative;
			}

			.side::before {
				content: '';
				background: black;
				position: absolute;
				border: 1px solid #666;
				background: #ddd;
				width: 12px;
				right: 4px;
				top: 4px;
				bottom: 4px;
			}

			.right {
				padding-bottom: 300px;
			}

			.space {
				width: 8px;
				height: 20px;
			}
		</style>
	</head>
<body id="app" class="row">
		<div class="message" v-show="message">
			<div>{{message}}</div>
		</div>
		<input ref="file" type="file" @change="loadData" class="hidden">
		<input ref="copy" class="hidden" :value="copy_text">
		<div class="left" ref="left" v-show="side">
			<div class="monster">
				<div class="row">怪物卡<button @click="createMonster">生成</button></div>
				<div class="text">
					支线等级
					<select @change="monster.level = $event.srcElement.selectedOptions[0].value">
						<option v-for="v, k in monster.select.level" :key="k" :value="k">{{v}}</option>
					</select>
				</div>
				<div class="text">
					模板类型
					<select @change="monster.type = $event.srcElement.selectedOptions[0].value">
						<option v-for="v, k in monster.select.type" :key="k" :value="k">{{v}}</option>
					</select>
				</div>
				<div class="text">
					攻击方式
					<select @change="monster.attack = $event.srcElement.selectedOptions[0].value">
						<option v-for="v, k in monster.select.attack" :key="k" :value="k">{{v}}</option>
					</select>
				</div>
			</div>
			<div class="action">
				<div>
					<button @click="saveData">导出txt</button>
					<button @click="loadDataClick">导入txt</button>
				</div>
				<div>
					<button @click="saveHtml">导出html</button>
					<button @click="clearStorage">清理缓存</button>
				</div>
				<div>
					<button @click="openAll()">展开全部</button>
					<button @click="closeAll()">折叠全部</button>
				</div>
			</div>
			<div class="list" ref="list" @click="forceUpdate" :style="{height: height}">
				<div v-for="v, k in list" :key="k">
					<div class="row">
						<div class="add" v-if="v.data" v-show="!v.show" @click="v.show = !v.show"></div>
						<div class="cut" v-if="v.data" v-show="v.show" @click="v.show = !v.show"></div>
						<a :href="'#' + v.dict">{{v.name}}</a>
					</div>
					<div class="child" v-if="v.data" v-for="vv, kk in v.data" :key="kk">
						<div class="row" v-show="v.show">
							<div class="add" v-if="vv.data" v-show="!vv.show" @click="vv.show = !vv.show"></div>
							<div class="cut" v-if="vv.data" v-show="vv.show" @click="vv.show = !vv.show"></div>
							<a :href="'#' + vv.dict">{{vv.name}}</a>
						</div>
						<div class="child" v-if="vv.data" v-for="vvv, kkk in vv.data" :key="kkk">
							<div class="row" v-show="v.show &amp;&amp; vv.show">
								<a :href="'#' + vvv.dict">{{vvv.name}}</a>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
		<div class="side" :style="{width: side ? '220px' : '20px'}" @click="side = !side"></div>
		<div class="right">
			<div ref="right">
				<p></p>
				<div class="role" id="role">
					<div class="row">▓▓▓▓{{data.role.name}}:</div>
					<div v-show="data.role.show">
						<div class="row">▓▓{{data.role.name}}:</div>
						<div :class="{row: v.name != '概述'}" v-for="v, k in data.role.data" :key="k" :id="v.dict">
							<div class="text">
								▓<div-input v-model="v.name" @blur="forceUpdate"></div-input>:<p></p>
							</div>
							<div-input v-model="v.text" @blur="forceUpdate"></div-input>
						</div>
					</div>
				</div>
				<p></p>
				<div class="attr" id="attr">
					<div class="text">▓▓▓▓{{data.attr.name}}:</div>
					<div v-show="data.attr.show">
						<div v-for="v, k in data.attr.data" :key="k" :id="v.dict">
							<div class="text">▓▓{{v.name}}:</div>
							<div class="row" v-for="vv, kk in v.data" :key="kk" :id="vv.dict">
								<div class="text">▓{{vv.name}}:<p></p>
								</div>
								<div-input v-model="vv.text" @blur="updateText(vv.dict, 'attr')"></div-input>
								<div class="row">{{vv.buff}}</div>
								<div class="text">={{vv._value}} 传奇({{vv.attach}})</div>
							</div>
						</div>
					</div>
				</div>
				<p></p>
				<div class="skill" id="skill">
					<div class="text">▓▓▓▓{{data.skill.name}}:</div>
					<div v-show="data.skill.show">
						<div v-for="v, k in data.skill.data" :key="k" :id="v.dict">
							<div class="text">▓▓{{v.name}}:</div>
							<div class="row" v-for="vv, kk in v.data" :key="kk" :id="vv.dict">
								<div class="text">▓{{vv.name}}:<p></p>
								</div>
								<div-input v-model="vv.text" @blur="updateText(vv.dict, 'skill')"></div-input>
								(<div-input v-model="vv.major" @blur="forceUpdate"></div-input>)
								<div class="row">{{vv.buff}}</div>
							</div>
						</div>
					</div>
				</div>
				<p></p>
				<div class="derive" id="derive">
					<div class="text">▓▓▓▓{{data.derive.name}}:</div>
					<div v-show="data.derive.show">
						<div class="text">▓▓{{data.derive.name}}:</div>
						<div class="row" v-for="v, k in data.derive.data" :key="k" :id="v.dict">
							<div class="text">
								▓<div-input v-model="v.name" @blur="updateName(v.dict)"></div-input>:<p></p>
							</div>
							<div-input v-model="v.text" @blur="updateText(v.dict, 'derive')"></div-input>
							<div class="row">{{v.buff}}</div>
							<div class="text">={{v._value}}</div>
						</div>
						<div class="add" @click="addData('derive', 'derive')"></div>
					</div>
				</div>
				<p></p>
				<div class="check" id="check">
					<div class="text">▓▓▓▓{{data.check.name}}:</div>
					<div v-show="data.check.show">
						<div v-for="v, k in data.check.data" :key="k" :id="v.dict">
							<div class="text">
								▓▓<div-input v-model="v.name" @blur="updateName(v.dict)"></div-input>:
								<div class="copy" @click="copyData(v.dict)"></div>
							</div>
							<div class="row">
								<div class="text">▓DP:<p></p>
								</div>
								<div-input v-model="v.check.text" @blur="updateText(v.dict + '.check', 'check')">
								</div-input>
								<div class="row">{{v.check.buff}}</div>
								<div class="text">={{v.check._value}}</div>
							</div>
							<div class="row">
								<div class="text">▓附加成功:<p></p>
								</div>
								<div-input v-model="v.attach.text" @blur="updateText(v.dict + '.attach', 'attach')">
								</div-input>
								<div class="row">{{v.attach.buff}}</div>
								<div class="text">={{v.attach._value}}</div>
							</div>
						</div>
						<div class="add add2" @click="addData('check', 'check')"></div>
					</div>
				</div>
				<p></p>
				<div class="attack" id="attack">
					<div class="text">▓▓▓▓{{data.attack.name}}:</div>
					<div v-show="data.attack.show">
						<div v-for="v, k in data.attack.data" :key="k" :id="v.dict">
							<div class="text">
								▓▓<div-input v-model="v.name" @blur="updateName(v.dict)"></div-input>:
								<div class="copy" @click="copyData(v.dict)"></div>
							</div>
							<div class="row">
								<div class="text">▓DP:<p></p>
								</div>
								<div-input v-model="v.check.text" @blur="updateText(v.dict + '.check', 'attack')">
								</div-input>
								<div class="row">{{v.check.buff}}</div>
								<div class="text">={{v.check._value}}</div>
							</div>
							<div v-for="vv, kk in init.dict" :key="kk">
								<div class="row">
									<div class="text">▓{{vv}}:<p></p>
									</div>
									<div-input v-model="v[kk].text" @blur="updateText(v.dict + '.' + kk, kk)">
									</div-input>
									<div class="row">{{v[kk].buff}}</div>
									<div class="text">={{v[kk]._value}}</div>
								</div>
							</div>
							<div class="row">
								<div class="text">▓加骰:<p></p>
								</div>
								<div-input v-model="v.dice" @blur="forceUpdate"></div-input>
							</div>
							<div>
								<div class="text">▓命中额外特效:</div>
								<div-input v-model="v.hit" @blur="forceUpdate"></div-input>
							</div>
							<div>
								<div class="text">▓武器基本属性:</div>
								<div-input v-model="v.base" @blur="forceUpdate"></div-input>
							</div>
							<div>
								<div class="text">▓武器特殊属性:</div>
								<div-input v-model="v.special" @blur="forceUpdate"></div-input>
							</div>
							<div>
								<div class="text">▓其他效果:</div>
								<div-input v-model="v.remark" @blur="forceUpdate"></div-input>
							</div>
						</div>
						<div class="add add2" @click="addData('attack', 'attack')"></div>
					</div>
				</div>
				<p></p>
				<div class="defense" id="defense">
					<div class="text">▓▓▓▓{{data.defense.name}}:</div>
					<div v-show="data.defense.show">
						<div class="text">▓▓防御数值:</div>
						<div class="row" v-for="v, k in data.defense.data" :key="k" :id="v.dict">
							<div class="text">
								▓<div-input v-model="v.name" @blur="updateName(v.dict)"></div-input>:<p></p>
							</div>
							<div-input v-model="v.text" @blur="updateText(v.dict, 'defense')"></div-input>
							<div class="row">{{v.buff}}</div>
							<div class="text">={{v._value}}</div>
						</div>
						<div class="add" @click="addData('defense', 'defense')"></div>
						<div class="text">▓▓其他防御:</div>
						<div class="text">▓其他防御:</div>
						<div-input v-model="data.defense.remark" @blur="forceUpdate"></div-input>
						<div class="text">▓▓防御总览:<p></p>
							<div class="copy" @click="copy(defense + ' ' + data.defense.remark)"></div>
						</div>
						<div class="div-input" contenteditable="true">
							<p>{{defense}}</p>
							<p>{{data.defense.remark}}</p>
						</div>
					</div>
				</div>
				<p></p>
				<div class="buff" id="buff">
					<div class="text">▓▓▓▓{{data.buff.name}}:</div>
					<div v-show="data.buff.show">
						<div v-for="v, k in data.buff.data" :key="k" :id="v.dict">
							<div class="text">
								▓▓<div-input v-model="v.name" @blur="updateName(v.dict, true)"></div-input>:
								<p></p><input type="checkbox" v-model="v.switch" @change="computeAll">
							</div>
							<div class="row" v-for="vv, kk in v.data" :key="kk" :id="vv.dict">
								<div class="text">
									▓<div v-if="!vv.type">{{vv.name}}</div>
									<div-input v-else="" v-model="vv.name" @blur="updateName(vv.dict, true)"></div-input>:
									<p>
									</p>
								</div>
								<div-input v-model="vv.text" @blur="updateText(vv.dict)"></div-input>
								<div class="text">={{vv._value}}</div>
								<p></p>
								<select @change="selectBuff($event, vv.dict)">
									<option v-for="sv, sk in select" :key="sk" :value="sk" :selected="sk == vv.type">
										{{sv}}
									</option>
								</select>
							</div>
							<div class="add" @click="addData(v.dict, 'buff')"></div>
						</div>
						<div class="add add2" @click="addData(data.buff.dict, 'title')"></div>
					</div>
				</div>
				<p></p>
				<div class="auto" id="auto" v-show="auto.show">
					<div class="text">▓▓▓▓自动破防:</div>
					<div class="text">▓▓攻击方:</div>
					<div class="text">▓文本:</div>
					<div-input v-model="auto.attack.text" @blur="autoChange('attack')"></div-input>
					<div class="text">▓识别:<p></p>{{auto.attack.result}}</div>
					<p></p>
					<div class="text">▓▓防御方:</div>
					<div class="text">▓文本:</div>
					<div-input v-model="auto.defense_text" @blur="autoChange('defense')"></div-input>
					<div class="row" v-for="v, k in auto.defense" :key="k">
						<div class="text">▓{{v.name}}:<p></p>
						</div>
						<div-input v-model="v.text" @blur="autoChange(k)"></div-input>
					</div>
					<div class="text">▓合计防御:<p></p>{{auto.defense_value}}</div>
					<p></p>
					<div class="text">▓▓结果:<p></p>
						<div class="copy" @click="copy(auto.result.text)"></div>
					</div>
					<div class="row">
						<div class="text">▓检定:</div>
						<div class="div-input" contenteditable="true">{{auto.result.text}}</div>
					</div>
					<div class="text">▓剩余DP:<p></p>{{auto.result.value}}</div>
					<div class="text">▓剩余高速:<p></p>{{auto.result.speed}}</div>
					<div class="text">▓剩余破甲:<p></p>{{auto.result.armor}}</div>
					<div class="text">▓剩余破魔:<p></p>{{auto.result.magic}}</div>
				</div>
				<p></p>
				<div class="scale" id="scale">
					<div class="text">▓▓▓▓{{data.scale.name}}:</div>
					<div v-show="data.scale.show">
						<div v-for="v, k in data.scale.data" :key="k" :id="v.dict">
							<div class="text">
								▓▓<div-input v-model="v.name" @blur="updateName(v.dict)"></div-input>:
								<p></p>{{v.now}}
								<div class="text" v-show="v._value">
									<p></p>/<p></p>{{v._value}}
								</div>
							</div>
							<div v-show="v.hp">
								<div class="text">
									<p></p>
									<p></p>完好<p></p>{{v.I}}
								</div>
								<div class="text">
									<p></p>
									<p></p>冲击<p></p>{{v.B}}
								</div>
								<div class="text">
									<p></p>
									<p></p>严重<p></p>{{v.L}}
								</div>
								<div class="text">
									<p></p>
									<p></p>恶性<p></p>{{v.A}}
								</div>
							</div>
							<div class="row">
								<div class="text">▓上限:<p></p>
								</div>
								<div-input v-model="v.text" @blur="updateText(v.dict, 'scale')"></div-input>
								<div class="text">{{v.buff}}</div>
								<div class="text">={{v._value}}</div>
							</div>
							<div>
								<div class="text">▓记录:<p></p>
								</div>
								<div-input v-model="v.log" @blur="scaleChange(v.dict, true)"></div-input>
							</div>
						</div>
						<div class="add add2" @click="addData('scale', 'scale')"></div>
					</div>
				</div>
				<p></p>
				<div v-for="item, index in data.data.data" :key="index" :id="item.dict">
					<div class="text">▓▓▓▓{{item.name}}:</div>
					<div v-show="item.show">
						<div v-for="v, k in item.data" :key="k" :id="v.dict">
							<div class="text">▓▓<div-input v-model="v.name" @blur="updateName(v.dict, true)">
								</div-input>:
							</div>
							<div v-show="v.show">
								<div v-for="vv, kk in v.data" :key="kk" :id="vv.dict">
									<div class="text">
										▓<div-input v-model="vv.name" @blur="updateName(vv.dict, true)"></div-input>:
									</div>
									<div-input v-model="vv.text" @blur="forceUpdate"></div-input>
								</div>
								<div class="add" @click="addData(v.dict, 'text')"></div>
							</div>
						</div>
						<div class="add add2" @click="addData(item.dict, 'title')"></div>
					</div>
					<p></p>
				</div>
				<p></p>
			</div>
			<div class="help" id="help" v-show="help.show">
				<div class="row">▓▓▓▓使用说明:</div>
				<div class="row">▓▓词条:</div>
				<div class="row">
					<div class="text">▓词条名:<p></p>
					</div>
					在▓与:之间的名词即为词条名，根据▓数量决定是什么级别的词条，如▓xxx:则xxx为词条名
				</div>
				<div class="row">
					<div class="text">▓添加词条:<p></p>
					</div>
					点击<div class="add"></div>或<div class="add add2"></div>即可添加词条
				</div>
				<div class="row">
					<div class="text">▓删除词条:<p></p>
					</div>
					将词条名清空即可删除词条
				</div>
				<div class="row">▓▓引用:</div>
				<div class="row">
					<div class="text">▓@:<p></p>
					</div>
					使用@引用[属性][技能][衍生属性][攻击][防御]里词条的数值或dp
				</div>
				<div class="row">
					<div class="text">▓引用副属性:<p></p>
					</div>
					@xxx为词条xxx的数值或dp， 若要引用[附加成功][武器伤害][破甲]，需要@xxx附加成功，@xxx武器伤害，@xxx破甲
				</div>
				<div class="row">
					<div class="text">▓BUFF:<p></p>
					</div>
					BUFF子项里词条为引用， 开启后会给对应引用加值; 对于全检定BUFF，在一个检定中只会生效一次
				</div>
				<div class="row">▓▓运算符:</div>
				<div class="row">
					<div class="text">▓ ~ :<p></p>
					</div>
					对应阶加算法，如5~=1+2+3+4+5=15， 运算优先级最高，通常只有传奇力量和传奇耐力会使用到阶加
				</div>
				<div class="row">
					<div class="text">▓ * 和 / :<p></p>
					</div>
					对应乘法和除法， 运算优先级第二; 除法会去除小数点， 因此尽量把除法放最后
				</div>
				<div class="row">
					<div class="text">▓ &amp; 和 | :<p></p>
					</div>
					&amp;为取两边较低数值， |为取两边较高数值， 运算优先级第三; 1&amp;2=1; 1|2=2
				</div>
				<div class="row">
					<div class="text">▓ + 和 - :<p></p>
					</div>
					对应加法和减法， 运算优先级最低
				</div>
				<div class="row">
					<div class="text">▓括号:<p></p>
					</div>
					括号值用于表达式，如xxx(自然数)，不能在括号里进行计算，但可以是负整数
				</div>
			</div>
		</div>
		<script>
			window.html = [
				document.querySelector("head").outerHTML.toString(),
				document.querySelector("body").outerHTML.toString(),
			]
		</script></body>
<script>
var script_data = {"role":{"name":"人物","dict":"role","show":true,"data":{"0":{"name":"姓名","dict":"role.data.0","text":"monster"},"1":{"name":"概述","dict":"role.data.1","text":""}}},"attr":{"name":"属性","dict":"attr","show":true,"data":{"0":{"name":"心智属性","dict":"attr.data.0","show":false,"data":{"0":{"name":"智力","dict":"attr.data.0.data.0","text":"11","value":11,"_value":11,"attach":2,"buff":""},"1":{"name":"感知","dict":"attr.data.0.data.1","text":"11","value":11,"_value":11,"attach":2,"buff":""},"2":{"name":"决心","dict":"attr.data.0.data.2","text":"11","value":11,"_value":11,"attach":2,"buff":""}}},"1":{"name":"生理属性","dict":"attr.data.1","show":false,"data":{"0":{"name":"力量","dict":"attr.data.1.data.0","text":"11","value":11,"_value":11,"attach":2,"buff":""},"1":{"name":"敏捷","dict":"attr.data.1.data.1","text":"11","value":11,"_value":11,"attach":2,"buff":""},"2":{"name":"耐力","dict":"attr.data.1.data.2","text":"11","value":11,"_value":11,"attach":2,"buff":""}}},"2":{"name":"互动属性","dict":"attr.data.2","show":false,"data":{"0":{"name":"风度","dict":"attr.data.2.data.0","text":"11","value":11,"_value":11,"attach":2,"buff":""},"1":{"name":"操控","dict":"attr.data.2.data.1","text":"11","value":11,"_value":11,"attach":2,"buff":""},"2":{"name":"沉着","dict":"attr.data.2.data.2","text":"11","value":11,"_value":11,"attach":2,"buff":""}}}}},"skill":{"name":"技能","dict":"skill","show":true,"data":{"0":{"name":"心智系技能","dict":"skill.data.0","show":false,"data":{"0":{"name":"学识","dict":"skill.data.0.data.0","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"1":{"name":"电脑","dict":"skill.data.0.data.1","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"2":{"name":"手艺-子项A","dict":"skill.data.0.data.2","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"3":{"name":"调查","dict":"skill.data.0.data.3","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"4":{"name":"医学","dict":"skill.data.0.data.4","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"5":{"name":"神秘学","dict":"skill.data.0.data.5","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"6":{"name":"科学","dict":"skill.data.0.data.6","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""}}},"1":{"name":"生理系技能","dict":"skill.data.1","show":false,"data":{"0":{"name":"运动","dict":"skill.data.1.data.0","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"1":{"name":"肉搏","dict":"skill.data.1.data.1","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"2":{"name":"驾驶","dict":"skill.data.1.data.2","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"3":{"name":"枪械","dict":"skill.data.1.data.3","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"4":{"name":"手上功夫","dict":"skill.data.1.data.4","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"5":{"name":"隐藏","dict":"skill.data.1.data.5","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"6":{"name":"求生","dict":"skill.data.1.data.6","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"7":{"name":"白刃","dict":"skill.data.1.data.7","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"8":{"name":"弓箭","dict":"skill.data.1.data.8","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""}}},"2":{"name":"互动系技能","dict":"skill.data.2","show":false,"data":{"0":{"name":"动物沟通","dict":"skill.data.2.data.0","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"1":{"name":"感受","dict":"skill.data.2.data.1","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"2":{"name":"表达-子项A","dict":"skill.data.2.data.2","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"3":{"name":"胁迫","dict":"skill.data.2.data.3","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"4":{"name":"交际","dict":"skill.data.2.data.4","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""},"5":{"name":"掩饰","dict":"skill.data.2.data.5","value":0,"_value":0,"text":"","major":"","attach":0,"buff":""}}}}},"derive":{"name":"衍生属性","dict":"derive","show":true,"data":{"0":{"name":"体积","old":"体积","dict":"derive.data.0","text":"5","value":5,"_value":5,"buff":""},"1":{"name":"体积差值","old":"体积差值","dict":"derive.data.1","text":"@体积(5)-标准(5)","value":0,"_value":0,"buff":""},"2":{"name":"体积补正","old":"体积补正","dict":"derive.data.2","text":"@体积差值(0)/2","value":0,"_value":0,"buff":""},"3":{"name":"基础速度","old":"基础速度","dict":"derive.data.3","text":"@体积(5)+@敏捷(11)+@力量(11)+@传奇敏捷(2)*3+健步如飞(5)","value":38,"_value":38,"buff":""},"4":{"name":"陆行速度","old":"陆行速度","dict":"derive.data.4","text":"@基础速度(38)","value":38,"_value":38,"buff":""},"5":{"name":"飞行速度","old":"飞行速度","dict":"derive.data.5","text":"","value":0,"_value":0,"buff":""},"6":{"name":"先攻","old":"先攻","dict":"derive.data.6","text":"@敏捷(11)+@沉着(11)+@传奇沉着(2)+专精先攻(5)","value":29,"_value":29,"buff":""},"7":{"name":"生命值上限","old":"生命值上限","dict":"derive.data.7","text":"@体积(5)+@耐力(11)+@传奇耐力(2)~+死硬(2)","value":21,"_value":21,"buff":""},"8":{"name":"意志值","old":"意志值","dict":"derive.data.8","text":"@决心(11)+@沉着(11)+@传奇决心(2)+@传奇沉着(2)","value":26,"_value":26,"buff":""},"9":{"name":"意志力基础用法","old":"意志力基础用法","dict":"derive.data.9","text":"基础(3)+钢铁意志(2)","value":5,"_value":5,"buff":""},"10":{"name":"反射豁免防御加值","old":"反射豁免防御加值","dict":"derive.data.10","text":"@天生防御(0)+@盔甲防御(0)+@盾牌防御(0)+@掩蔽防御(0)+@能量防御(0)+@亵渎防御(0)+@神圣防御(0)+@力场防御(0)+@偏斜防御(0)","value":0,"_value":0,"buff":""}}},"check":{"name":"检定速查","dict":"check","show":true,"data":{"0":{"name":"意志检定","old":"意志检定","dict":"check.data.0","check":{"text":"@意志值(26)+@传奇决心(2)","value":28,"_value":33,"buff":"+意志力基础用法(5)"},"attach":{"text":"@传奇决心(2)+@传奇沉着(2)","value":4,"_value":4,"buff":""}},"1":{"name":"意志豁免","old":"意志豁免","dict":"check.data.1","check":{"text":"@意志值(26)+@传奇决心(2)","value":28,"_value":33,"buff":"+意志力基础用法(5)"},"attach":{"text":"@传奇决心(2)+@传奇沉着(2)","value":4,"_value":4,"buff":""}},"2":{"name":"反射豁免","old":"反射豁免","dict":"check.data.2","check":{"text":"@敏捷(11)+@运动(0)+专业(1)+@反射豁免防御加值(0)","value":12,"_value":17,"buff":"+意志力基础用法(5)"},"attach":{"text":"@传奇敏捷(2)+@运动附加成功(0)","value":2,"_value":2,"buff":""}},"3":{"name":"强韧豁免","old":"强韧豁免","dict":"check.data.3","check":{"text":"@耐力(11)+@求生(0)+专业(1)","value":12,"_value":17,"buff":"+意志力基础用法(5)"},"attach":{"text":"@传奇耐力(2)+@求生附加成功(0)","value":2,"_value":2,"buff":""}},"4":{"name":"侦查检定","old":"侦查检定","dict":"check.data.4","check":{"text":"@感知(11)+@调查(0)+专业(1)","value":12,"_value":17,"buff":"+意志力基础用法(5)"},"attach":{"text":"@传奇感知(2)+@调查附加成功(0)","value":2,"_value":2,"buff":""}}}},"attack":{"name":"攻击预设","dict":"attack","show":true,"data":{"0":{"name":"肉搏攻击","old":"肉搏攻击","dict":"attack.data.0","dice":"10","hit":"","base":"","special":"","remark":"","check":{"text":"@力量(11)+@肉搏(0)+专业(1)+@肉搏攻击武器伤害(0)+@传奇力量(2)","value":14,"_value":19,"buff":"+意志力基础用法(5)"},"attach":{"text":"@传奇力量(2)+@肉搏附加成功(0)","value":2,"_value":2,"buff":""},"limit":{"text":"@力量(11)+@肉搏(0)+@肉搏攻击武器伤害(0)+@传奇力量(2)~","value":14,"_value":14,"buff":""},"weapon":{"text":"","value":0,"_value":0,"buff":""},"speed":{"text":"","value":0,"_value":0,"buff":""},"armor":{"text":"","value":0,"_value":0,"buff":""},"magic":{"text":"","value":0,"_value":0,"buff":""},"reach":{"text":"","value":0,"_value":0,"buff":""},"range":{"text":"","value":0,"_value":0,"buff":""}},"1":{"name":"白刃攻击","old":"白刃攻击","dict":"attack.data.1","dice":"10","hit":"","base":"","special":"","remark":"","check":{"text":"@力量(11)+@白刃(0)+专业(1)+@白刃攻击武器伤害(0)+@传奇力量(2)","value":14,"_value":19,"buff":"+意志力基础用法(5)"},"attach":{"text":"@传奇力量(2)+@白刃附加成功(0)","value":2,"_value":2,"buff":""},"limit":{"text":"@力量(11)+@白刃(0)+@白刃攻击武器伤害(0)+@传奇力量(2)~","value":14,"_value":14,"buff":""},"weapon":{"text":"","value":0,"_value":0,"buff":""},"speed":{"text":"","value":0,"_value":0,"buff":""},"armor":{"text":"","value":0,"_value":0,"buff":""},"magic":{"text":"","value":0,"_value":0,"buff":""},"reach":{"text":"","value":0,"_value":0,"buff":""},"range":{"text":"","value":0,"_value":0,"buff":""}},"2":{"name":"枪械攻击","old":"枪械攻击","dict":"attack.data.2","dice":"10","hit":"","base":"","special":"","remark":"","check":{"text":"@敏捷(11)+@枪械(0)+专业(1)+@枪械攻击武器伤害(0)","value":12,"_value":17,"buff":"+意志力基础用法(5)"},"attach":{"text":"@传奇敏捷(2)+@枪械附加成功(0)","value":2,"_value":2,"buff":""},"limit":{"text":"@枪械(0)+@枪械攻击武器伤害(0)*2","value":0,"_value":0,"buff":""},"weapon":{"text":"","value":0,"_value":0,"buff":""},"speed":{"text":"5","value":5,"_value":5,"buff":""},"armor":{"text":"","value":0,"_value":0,"buff":""},"magic":{"text":"","value":0,"_value":0,"buff":""},"reach":{"text":"","value":0,"_value":0,"buff":""},"range":{"text":"","value":0,"_value":0,"buff":""}},"3":{"name":"弓箭攻击","old":"弓箭攻击","dict":"attack.data.3","dice":"10","hit":"","base":"","special":"","remark":"","check":{"text":"@敏捷(11)+@弓箭(0)+专业(1)+@弓箭攻击武器伤害(0)","value":12,"_value":17,"buff":"+意志力基础用法(5)"},"attach":{"text":"@传奇敏捷(2)+@弓箭附加成功(0)","value":2,"_value":2,"buff":""},"limit":{"text":"@弓箭(0)+@弓箭攻击武器伤害(0)*2+力量要求(0)","value":0,"_value":0,"buff":""},"weapon":{"text":"","value":0,"_value":0,"buff":""},"speed":{"text":"","value":0,"_value":0,"buff":""},"armor":{"text":"","value":0,"_value":0,"buff":""},"magic":{"text":"","value":0,"_value":0,"buff":""},"reach":{"text":"","value":0,"_value":0,"buff":""},"range":{"text":"","value":0,"_value":0,"buff":""}},"4":{"name":"法术攻击","old":"法术攻击","dict":"attack.data.4","dice":"10","hit":"","base":"","special":"","remark":"武器伤害即威力值一般为D级2点，DD级3点，C级4点，CC级5点，B级6点，BB级8点，A级10点，AA级13点，S级16点。","check":{"text":"@智力(11)+@神秘学(0)+专业(1)+@法术攻击武器伤害(0)","value":12,"_value":17,"buff":"+意志力基础用法(5)"},"attach":{"text":"@传奇智力(2)+@神秘学附加成功(0)","value":2,"_value":2,"buff":""},"limit":{"text":"@智力(11)+@神秘学(0)+@法术攻击武器伤害(0)","value":11,"_value":11,"buff":""},"weapon":{"text":"","value":0,"_value":0,"buff":""},"speed":{"text":"","value":0,"_value":0,"buff":""},"armor":{"text":"","value":0,"_value":0,"buff":""},"magic":{"text":"","value":0,"_value":0,"buff":""},"reach":{"text":"","value":0,"_value":0,"buff":""},"range":{"text":"","value":0,"_value":0,"buff":""}},"5":{"name":"火炮攻击","old":"火炮攻击","dict":"attack.data.5","dice":"10","hit":"","base":"","special":"","remark":"造成范围伤害，伤害值为武器伤害，攻击者进行判定时，需减去目标除了基础防御、闪避防御、洞察防御以及格挡防御以外的防御进行判定，判定结果作为被攻击者进行反射对抗判定时的减值。","check":{"text":"@智力(11)+@神秘学(0)+专业(1)+@火炮攻击武器伤害(0)","value":12,"_value":17,"buff":"+意志力基础用法(5)"},"attach":{"text":"@传奇智力(2)+@枪械附加成功(0)","value":2,"_value":2,"buff":""},"limit":{"text":"@枪械(0)+@火炮攻击武器伤害(0)*2","value":0,"_value":0,"buff":""},"weapon":{"text":"","value":0,"_value":0,"buff":""},"speed":{"text":"","value":0,"_value":0,"buff":""},"armor":{"text":"","value":0,"_value":0,"buff":""},"magic":{"text":"","value":0,"_value":0,"buff":""},"reach":{"text":"","value":0,"_value":0,"buff":""},"range":{"text":"","value":0,"_value":0,"buff":""}}}},"defense":{"name":"防御预设","dict":"defense","show":true,"data":{"0":{"name":"防御附加成功","old":"防御附加成功","dict":"defense.data.0","text":"@传奇敏捷(2)+@传奇感知(2)","value":4,"_value":4,"buff":""},"1":{"name":"基础防御","old":"基础防御","dict":"defense.data.1","text":"@敏捷(11)&@感知(11)+精通先攻(3)+闪避与格挡(6)","value":20,"_value":20,"buff":""},"2":{"name":"闪避防御","old":"闪避防御","dict":"defense.data.2","text":"@传奇敏捷(2)+闪避与格挡(6)","value":8,"_value":8,"buff":""},"3":{"name":"洞察防御","old":"洞察防御","dict":"defense.data.3","text":"@传奇感知(2)","value":2,"_value":2,"buff":""},"4":{"name":"天生防御","old":"天生防御","dict":"defense.data.4","text":"","value":0,"_value":0,"buff":""},"5":{"name":"格挡防御","old":"格挡防御","dict":"defense.data.5","text":"","value":0,"_value":0,"buff":"+格挡(0)"},"6":{"name":"完美防御","old":"完美防御","dict":"defense.data.6","text":"","value":5,"_value":5,"buff":"+意志力基础用法(5)"}},"remark":"","value":35},"buff":{"name":"BUFF","dict":"buff","show":true,"data":{"0":{"name":"格挡","dict":"buff.data.0","show":true,"data":{"0":{"name":"格挡防御","dict":"buff.data.0.data.0","text":"@白刃(0)|@肉搏(0)","value":0,"_value":0,"type":"at","buff":""}},"switch":true},"1":{"name":"意志力基础用法","dict":"buff.data.1","show":true,"data":{"0":{"name":"全检定","dict":"buff.data.1.data.0","text":"@意志力基础用法(5)","value":5,"_value":5,"type":"","buff":""},"1":{"name":"完美防御","dict":"buff.data.1.data.1","text":"@意志力基础用法(5)","value":5,"_value":5,"type":"at","buff":""}},"switch":true}}},"scale":{"name":"计量槽","dict":"scale","show":true,"data":{"0":{"name":"生命值","old":"生命值","dict":"scale.data.0","text":"@生命值上限(21)","value":21,"_value":21,"buff":"","log":"","now":"21完好","hp":true,"I":21,"B":0,"L":0,"A":0}}},"data":{"name":"▓▓","dict":"data","show":true,"data":{"0":{"name":"名词速记","dict":"data.data.0","show":true,"data":{}},"1":{"name":"专长","dict":"data.data.1","show":false,"data":{"0":{"name":"健步如飞","dict":"data.data.1.data.0","show":true,"data":{"0":{"name":"1~3","dict":"data.data.1.data.0.data.0","text":"前提：需求力量2\r\n1级：人物的基础移动速度增加5米。\r\n2级：人物在进行冲锋攻击时，在该次攻击检定中额外获得3DP专长加值。\r\n3级：人物可以以迅捷动作进行移动，但该次移动的距离最多不能超过人物的体积*2米。"}}},"1":{"name":"精通先攻","dict":"data.data.1.data.1","show":true,"data":{"0":{"name":"1~3","dict":"data.data.1.data.1.data.1","text":"前提：需求敏捷2\r\n1级：人物的先攻值提升等同于专长等级*1点。\r\n2级：当其他单位的先攻权与你相同时，则由你先行动，若对方拥有相同或类似的能力，则依旧参照先攻规则判定行动顺序。\r\n3级：人物的先攻值再提升2点，同时人物的基础防御提升3点。"}}},"2":{"name":"警觉","dict":"data.data.1.data.2","show":true,"data":{"0":{"name":"1~3","dict":"data.data.1.data.2.data.2","text":"前提：需求感知3，调查技能2级\r\n1级：人物在进行调查技能相关检定时获得等同于本专长等级的专长加值。\r\n2级：人物在措手不及时可以保留最大等于本专长等级的基础防御。\r\n3级：人物获得D级免疫措手不及的能力。"}}},"3":{"name":"死硬","dict":"data.data.1.data.3","show":true,"data":{"0":{"name":"1~5","dict":"data.data.1.data.3.data.3","text":"前提：需求耐力3，决心3\r\n1级：人物在进行强韧检定时获得等同于本专长等级的专长加值。\r\n2级：人物的生命值增加1点，当本专长等级达到4级时再增加1点。\r\n3级：人物不会因为伤势失去意识，在进行强韧检定时额外获得1个附加成功。\r\n4级：人物在为毒素、药物、疾病或创伤效果所带来的不良状态点数和固有不良状态而进行对抗、豁免或移除它们时，人物的相关检定获得此专长等级/DP专长加值。\r\n5级：人物每1分钟就可以移除1点冲击伤害；每经过一次长休息，就可以使生命槽中等同于耐力值的严重伤害转为完好。当人物不再有“完好”生命值，则人物在所有检定上获得1DP士气加值。人物的生命值若恰好被恶性填满也不会死亡，之后哪怕受到1点冲击伤害也会死亡。"}}},"4":{"name":"闪避与格挡","dict":"data.data.1.data.4","show":true,"data":{"0":{"name":"1~5","dict":"data.data.1.data.4.data.4","text":"前提：需求敏捷4\r\n1级：灵巧格挡\r\n当人物进行格挡时，人物在防御上的格挡加值额外增加1点；此外，人物在进行全力防御时，人物在防御上的闪避加值额外增加1点。\r\n2级：灵巧闪避\r\n人物的基础防御额外增加等同于本专长等级+1点。\r\n3级：格挡专家\r\n当人物进行格挡时，人物在防御上额外获得1点附加成功，这被视作由格挡带来的附加成功；此外，人物在进行全力防御时，人物在防御上额外获得1点附加成功，这杯视作基于敏捷和感知带来的附加成功。\r\n4级：闪避专家\r\n人物在防御上获得6点闪避加值。\r\n5级：战斗大师\r\n人物在防御上增加3点洞察加值；同时，人物在维持格挡时获得1点全伤害吸收，若一次攻击将人物在防御上的格挡加值全数破除或是忽略，则该次攻击可以忽略本级专长带来的全伤害吸收能力。"}}},"5":{"name":"轻灵战士","dict":"data.data.1.data.5","show":true,"data":{"0":{"name":"1~4","dict":"data.data.1.data.5.data.5","text":"前提：需求敏捷3，感知3\r\n人物必须身着轻甲或不穿着任何盔甲，才能使用和获得本专长带来的所有好处。\r\n1级：身轻如燕\r\n人物在运动技能相关检定上获得等同于本专长等级的专长加值。\r\n2级：快速战士\r\n人物的基础移动速度增加等同于本专长等级*3米。\r\n3级：闪避娴熟\r\n人物在防御上获得等同于本专长等级+1点闪避防御。\r\n4级：如风神速\r\n人物在进行跳跃时无须助跑，并且可以忽略困难地形带来的影响。同时获得1点防御附加成功。"}}},"6":{"name":"重甲大师","dict":"data.data.1.data.6","show":true,"data":{"0":{"name":"1~4","dict":"data.data.1.data.6.data.6","text":"前提：需求力量3，耐力3\r\n人物必须身着重甲，才能使用和获得本专长带来的所有好处。\r\n1级：重甲娴熟\r\n当人物身着重甲时，其承受的盔甲减值降低等同于本专长等级*1点。\r\n2级：重甲专擅\r\n当人物身着重甲时，该重甲的盔甲防御额外提升等同于本专长等级的数值。\r\n3级：重甲大师\r\n当人物身着重甲时，该重甲额外获得等同于本专长等级的抵破甲值。\r\n4级：钢铁之主\r\n当人物身着重甲时，该重装甲获得【封闭1】，若该重击已具备【封闭1】，则使其增加1点。"}}},"7":{"name":"钢铁意志","dict":"data.data.1.data.7","show":true,"data":{"0":{"name":"1~5","dict":"data.data.1.data.7.data.7","text":"前提：需求决心3，沉着3\r\n1级：人物在进行意志检定时获得等同于本专长等级的专长加值。\r\n2级：人物在使用意志力的基础用法为行动增加DP（或增加防御）时，额外获得1DP完美加值（或1点完美防御），当此专长等级达到4级时再增加1点。\r\n3级：人物在进行意志检定时额外获得1个附加成功。\r\n4级：在为影响心灵的效果所带来的不良状态点数和固有不良状态而进行对抗、豁免或移除它们时，人物的关键抵抗属性之一（由你选择）视为比原本的属性要高出此等同于本专长等级*1点。\r\n5级：每场景一次，当人物在为影响心灵的效果所带来的不良状态点数和固有不良状态而进行对抗和豁免时，你可以进行两次检定，但你必须接受第二次掷出的结果，即使它更差。同时人物的意志力池扩大2点。"}}}}}}}}
var script_text = {"智力":"attr.data.0.data.0.value","智力附加成功":"attr.data.0.data.0.attach","传奇智力":"attr.data.0.data.0.attach","感知":"attr.data.0.data.1.value","感知附加成功":"attr.data.0.data.1.attach","传奇感知":"attr.data.0.data.1.attach","决心":"attr.data.0.data.2.value","决心附加成功":"attr.data.0.data.2.attach","传奇决心":"attr.data.0.data.2.attach","力量":"attr.data.1.data.0.value","力量附加成功":"attr.data.1.data.0.attach","传奇力量":"attr.data.1.data.0.attach","敏捷":"attr.data.1.data.1.value","敏捷附加成功":"attr.data.1.data.1.attach","传奇敏捷":"attr.data.1.data.1.attach","耐力":"attr.data.1.data.2.value","耐力附加成功":"attr.data.1.data.2.attach","传奇耐力":"attr.data.1.data.2.attach","风度":"attr.data.2.data.0.value","风度附加成功":"attr.data.2.data.0.attach","传奇风度":"attr.data.2.data.0.attach","操控":"attr.data.2.data.1.value","操控附加成功":"attr.data.2.data.1.attach","传奇操控":"attr.data.2.data.1.attach","沉着":"attr.data.2.data.2.value","沉着附加成功":"attr.data.2.data.2.attach","传奇沉着":"attr.data.2.data.2.attach","学识":"skill.data.0.data.0.value","学识附加成功":"skill.data.0.data.0.attach","电脑":"skill.data.0.data.1.value","电脑附加成功":"skill.data.0.data.1.attach","手艺-子项A":"skill.data.0.data.2.value","手艺-子项A附加成功":"skill.data.0.data.2.attach","调查":"skill.data.0.data.3.value","调查附加成功":"skill.data.0.data.3.attach","医学":"skill.data.0.data.4.value","医学附加成功":"skill.data.0.data.4.attach","神秘学":"skill.data.0.data.5.value","神秘学附加成功":"skill.data.0.data.5.attach","科学":"skill.data.0.data.6.value","科学附加成功":"skill.data.0.data.6.attach","运动":"skill.data.1.data.0.value","运动附加成功":"skill.data.1.data.0.attach","肉搏":"skill.data.1.data.1.value","肉搏附加成功":"skill.data.1.data.1.attach","驾驶":"skill.data.1.data.2.value","驾驶附加成功":"skill.data.1.data.2.attach","枪械":"skill.data.1.data.3.value","枪械附加成功":"skill.data.1.data.3.attach","手上功夫":"skill.data.1.data.4.value","手上功夫附加成功":"skill.data.1.data.4.attach","隐藏":"skill.data.1.data.5.value","隐藏附加成功":"skill.data.1.data.5.attach","求生":"skill.data.1.data.6.value","求生附加成功":"skill.data.1.data.6.attach","白刃":"skill.data.1.data.7.value","白刃附加成功":"skill.data.1.data.7.attach","弓箭":"skill.data.1.data.8.value","弓箭附加成功":"skill.data.1.data.8.attach","动物沟通":"skill.data.2.data.0.value","动物沟通附加成功":"skill.data.2.data.0.attach","感受":"skill.data.2.data.1.value","感受附加成功":"skill.data.2.data.1.attach","表达-子项A":"skill.data.2.data.2.value","表达-子项A附加成功":"skill.data.2.data.2.attach","胁迫":"skill.data.2.data.3.value","胁迫附加成功":"skill.data.2.data.3.attach","交际":"skill.data.2.data.4.value","交际附加成功":"skill.data.2.data.4.attach","掩饰":"skill.data.2.data.5.value","掩饰附加成功":"skill.data.2.data.5.attach","体积":"derive.data.0.value","体积差值":"derive.data.1.value","体积补正":"derive.data.2.value","基础速度":"derive.data.3.value","陆行速度":"derive.data.4.value","飞行速度":"derive.data.5.value","先攻":"derive.data.6.value","生命值上限":"derive.data.7.value","意志值":"derive.data.8.value","意志力基础用法":"derive.data.9.value","反射豁免防御加值":"derive.data.10.value","意志检定":"check.data.0.check.value","意志检定附加成功":"check.data.0.attach.value","意志豁免":"check.data.1.check.value","意志豁免附加成功":"check.data.1.attach.value","反射豁免":"check.data.2.check.value","反射豁免附加成功":"check.data.2.attach.value","强韧豁免":"check.data.3.check.value","强韧豁免附加成功":"check.data.3.attach.value","侦查检定":"check.data.4.check.value","侦查检定附加成功":"check.data.4.attach.value","生命值":"scale.data.0.value","生命值完好":"scale.data.0.I","生命值冲击":"scale.data.0.B","生命值严重":"scale.data.0.L","生命值恶性":"scale.data.0.A","防御附加成功":"defense.data.0.value","基础防御":"defense.data.1.value","闪避防御":"defense.data.2.value","洞察防御":"defense.data.3.value","天生防御":"defense.data.4.value","格挡防御":"defense.data.5.value","完美防御":"defense.data.6.value","防御总览":"defense.value","肉搏攻击":"attack.data.0.check.value","肉搏攻击附加成功":"attack.data.0.attach.value","肉搏攻击伤害上限":"attack.data.0.limit.value","肉搏攻击武器伤害":"attack.data.0.weapon.value","肉搏攻击高速":"attack.data.0.speed.value","肉搏攻击破甲":"attack.data.0.armor.value","肉搏攻击破魔":"attack.data.0.magic.value","肉搏攻击射程":"attack.data.0.reach.value","肉搏攻击范围":"attack.data.0.range.value","白刃攻击":"attack.data.1.check.value","白刃攻击附加成功":"attack.data.1.attach.value","白刃攻击伤害上限":"attack.data.1.limit.value","白刃攻击武器伤害":"attack.data.1.weapon.value","白刃攻击高速":"attack.data.1.speed.value","白刃攻击破甲":"attack.data.1.armor.value","白刃攻击破魔":"attack.data.1.magic.value","白刃攻击射程":"attack.data.1.reach.value","白刃攻击范围":"attack.data.1.range.value","枪械攻击":"attack.data.2.check.value","枪械攻击附加成功":"attack.data.2.attach.value","枪械攻击伤害上限":"attack.data.2.limit.value","枪械攻击武器伤害":"attack.data.2.weapon.value","枪械攻击高速":"attack.data.2.speed.value","枪械攻击破甲":"attack.data.2.armor.value","枪械攻击破魔":"attack.data.2.magic.value","枪械攻击射程":"attack.data.2.reach.value","枪械攻击范围":"attack.data.2.range.value","弓箭攻击":"attack.data.3.check.value","弓箭攻击附加成功":"attack.data.3.attach.value","弓箭攻击伤害上限":"attack.data.3.limit.value","弓箭攻击武器伤害":"attack.data.3.weapon.value","弓箭攻击高速":"attack.data.3.speed.value","弓箭攻击破甲":"attack.data.3.armor.value","弓箭攻击破魔":"attack.data.3.magic.value","弓箭攻击射程":"attack.data.3.reach.value","弓箭攻击范围":"attack.data.3.range.value","法术攻击":"attack.data.4.check.value","法术攻击附加成功":"attack.data.4.attach.value","法术攻击伤害上限":"attack.data.4.limit.value","法术攻击武器伤害":"attack.data.4.weapon.value","法术攻击高速":"attack.data.4.speed.value","法术攻击破甲":"attack.data.4.armor.value","法术攻击破魔":"attack.data.4.magic.value","法术攻击射程":"attack.data.4.reach.value","法术攻击范围":"attack.data.4.range.value","火炮攻击":"attack.data.5.check.value","火炮攻击附加成功":"attack.data.5.attach.value","火炮攻击伤害上限":"attack.data.5.limit.value","火炮攻击武器伤害":"attack.data.5.weapon.value","火炮攻击高速":"attack.data.5.speed.value","火炮攻击破甲":"attack.data.5.armor.value","火炮攻击破魔":"attack.data.5.magic.value","火炮攻击射程":"attack.data.5.reach.value","火炮攻击范围":"attack.data.5.range.value"}
</script>
<script id="script">
		window.html.push(document.getElementById('script').outerHTML.toString())
		window.vue = Vue.createApp({
			setup() {
				const select = {
					'': '全检定',
					'at': '指定',
				}
				const init = {
					init: JSON.stringify({
						"data": [
							["名词速记", []],
							["缺陷", []],
							["天赋", []],
							["怪癖", []],
							["专长", []],
							["基因锁", []],
							["血统", []],
							["改造", []],
							["瞳术", []],
							["修真功法", []],
							["魔导书", []],
							["称号", []],
							["技艺", []],
							["能量池", []],
							["施法者职能", []],
							["物品", [
								["头盔位", []],
								["护符位", []],
								["披风位", []],
								["腰带位", []],
								["盔甲位", []],
								["手套位", []],
								["左手戒指位", []],
								["右手戒指位", []],
								["鞋袜位", []],
								["法宝", []],
								["概念武装", []],
								["手持物品", []],
								["无装备位", []],
								["负重中物品", []],
								["非负重储物空间", []]
							]],
							["购买记录", []]
						],
						"role": [
							["姓名", ""],
							["性别", ""],
							["年龄", ""],
							["身高/体重", ""],
							["种族/国籍", ""],
							["语言", ""],
							["外貌/特征", ""],
							["性格/个性", ""],
							["美德/恶德", ""],
							["概述", ""]
						],
						"attr": [
							["心智属性", [
								["智力", "基础(1)+内在(0)+修行(0)+增强(0)+器械(0)"],
								["感知", "基础(1)+内在(0)+修行(0)+增强(0)+器械(0)"],
								["决心", "基础(1)+内在(0)+修行(0)+增强(0)+器械(0)"]
							]],
							["生理属性", [
								["力量", "基础(4)+内在(0)+修行(0)+增强(0)+器械(0)"],
								["敏捷", "基础(1)+内在(0)+修行(0)+增强(0)+器械(0)"],
								["耐力", "基础(1)+内在(0)+修行(0)+增强(0)+器械(0)"]
							]],
							["互动属性", [
								["风度", "基础(1)+内在(0)+修行(0)+增强(0)+器械(0)"],
								["操控", "基础(1)+内在(0)+修行(0)+增强(0)+器械(0)"],
								["沉着", "基础(1)+内在(0)+修行(0)+增强(0)+器械(0)"]
							]]
						],
						"skill": [
							["心智系技能", [
								["学识", "", ""],
								["电脑", "", ""],
								["手艺-子项A", "", ""],
								["调查", "", ""],
								["医学", "", ""],
								["神秘学", "", ""],
								["科学", "", ""]
							]],
							["生理系技能", [
								["运动", "", ""],
								["肉搏", "", ""],
								["驾驶", "", ""],
								["枪械", "", ""],
								["手上功夫", "", ""],
								["隐藏", "", ""],
								["求生", "", ""],
								["白刃", "", ""],
								["弓箭", "", ""]
							]],
							["互动系技能", [
								["动物沟通", "", ""],
								["感受", "", ""],
								["表达-子项A", "", ""],
								["胁迫", "", ""],
								["交际", "", ""],
								["掩饰", "", ""]
							]]
						],
						"derive": [
							["体积", "标准(5)"],
							["基础速度", "@体积(5)+@敏捷(6)+@力量(4)+@传奇敏捷(1)*3"],
							["陆行速度", "@基础速度(18)"],
							["飞行速度", ""],
							["先攻", "@敏捷(6)+@沉着(1)+@传奇沉着(0)"],
							["生命值上限", "@体积(5)+@耐力(1)+@传奇耐力(0)~"],
							["意志值", "@决心(1)+@沉着(1)+@传奇决心(0)+@传奇沉着(0)"],
							["敏感范围", "@感知(1)*10+@传奇感知(0)*20"],
							["意志力基础用法", "3"],
							["基础防御数值", "@敏捷(6)&@感知(1)"],
							["完好生命值", "@生命值完好(5)"],
							["恶性生命值", "@生命值恶性(0)"],
							["怪物A完好生命值", "@怪物A完好(-4)"],
							["怪物A恶性生命值", "@怪物A恶性(10)"],
							["反射豁免防御加值", "@防御总览(2)-@基础防御(1)-@闪避防御(1)-@洞察防御(0)-@格挡防御(0)"],
							["意志力数值", "@意志力(2)"]
						],
						"check": [
							["意志检定", [
								["DP", "@意志值(2)+@传奇决心(0)"],
								["附加成功", "@传奇决心(0)+@传奇沉着(0)"]
							]],
							["意志豁免", [
								["DP", "@意志值(2)+@传奇决心(0)"],
								["附加成功", "@传奇决心(0)+@传奇沉着(0)"]
							]],
							["反射豁免", [
								["DP", "@敏捷(6)+@运动(0)+@反射豁免防御加值(0)"],
								["附加成功", "@传奇敏捷(1)+@运动附加成功(0)"]
							]],
							["强韧豁免", [
								["DP", "@耐力(1)+@求生(0)"],
								["附加成功", "@传奇耐力(0)+@求生附加成功(0)"]
							]],
							["侦查检定", [
								["DP", "@感知(1)+@调查(0)"],
								["附加成功", "@传奇感知(0)+@调查附加成功(0)"]
							]],
							["近战攻击检定", [
								["DP", ""],
								["附加成功", ""]
							]]
						],
						"attack": [
							["白刃攻击", [
								["DP", "@力量(4)+@白刃(0)+@白刃攻击武器伤害(0)+@近战攻击检定(0)"],
								["附加成功", "@传奇力量(0)+@白刃附加成功(0)"],
								["伤害上限", "@力量(4)+@白刃(0)+@白刃攻击武器伤害(0)"],
								["武器伤害", ""],
								["高速", ""],
								["破甲", ""],
								["破魔", ""],
								["射程", ""],
								["范围", ""],
								["加骰", "10"],
								["命中额外特效", ""],
								["武器基本属性", ""],
								["武器特殊属性", ""],
								["其他效果", ""]
							]]
						],
						"defense": [
							[
								["防御附加成功", "@传奇敏捷(1)+@传奇感知(0)"],
								["基础防御", "@基础防御数值(1)"],
								["闪避防御", "@传奇敏捷(1)"],
								["洞察防御", "@传奇感知(0)"],
								["格挡防御", ""],
								["盔甲防御", ""],
								["天生防御", ""],
								["招式防御", ""],
								["完美防御", ""]
							],
							[
								["其他防御", ""]
							],
							["防御总览", []]
						],
						"buff": [
							["意志力基础用法", [
								["全检定", "@意志力基础用法(3)"],
								["完美防御", "@意志力基础用法(3)"]
							]],
							["一阶基因锁", [
								["全检定", "@传奇智力(0)&@传奇感知(0)"],
								["意志力基础用法", "@智力(1)&@感知(1)"]
							]],
							["二阶基因锁", [
								["全检定", "@传奇智力(0)&@传奇感知(0)"],
								["意志力基础用法", "@智力(1)|@感知(1)"]
							]],
							["三阶基因锁", [
								["全检定", "@传奇智力(0)&@传奇感知(0)"],
								["意志力基础用法", "@智力(1)|@感知(1)"],
								["力量", "5"],
								["白刃", "5"]
							]],
							["四阶基因锁初级", [
								["全检定", "@传奇智力(0)&@传奇感知(0)"],
								["意志力基础用法", "@智力(1)|@感知(1)"],
								["力量", "5"],
								["白刃", "5"],
								["操控", "-1"]
							]],
							["格挡", [
								["格挡防御", ""],
								["盾牌防御", ""]
							]],
							["全力防御", [
								["闪避防御", "@基础防御(1)"]
							]],
							["全力攻击", [
								["近战攻击检定", "@力量(4)/2&@基础防御数值(1)"],
								["基础防御", "-@力量(4)/2&@基础防御数值(1)"]
							]],
							["冲锋攻击", [
								["近战攻击检定", "@力量(4)&@基础防御数值(1)&@基础速度(18)"],
								["基础防御", "-@力量(4)&@基础防御数值(1)&@基础速度(18)"]
							]],
							["例子", [
								["白刃攻击", "5"],
								["白刃攻击附加成功", "1"],
								["白刃攻击武器伤害", "2"],
								["白刃攻击高速", "3"],
								["白刃攻击射程", "4"],
								["侦查检定", "5"],
								["侦查检定附加成功", "1"],
								["耐力", "3"],
								["生命值上限", "6"],
								["白刃", "5"],
								["生命值", "10"]
							]]
						],
						"scale": [
							["生命值", [
								["上限", "@生命值上限(6)"],
								["记录", "-1"]
							]],
							["意志力", [
								["上限", "@意志值(2)"],
								["记录", ""]
							]],
							["怪物A", [
								["上限", "@生命值上限(6)"],
								["记录", "-10A"]
							]],
							["刻度", [
								["上限", ""],
								["记录", "+1+5"]
							]]
						]
					}),
					data: JSON.stringify({
						role: {
							name: '人物',
							dict: 'role',
							show: true,
							data: {},
						},
						attr: {
							name: '属性',
							dict: 'attr',
							show: true,
							data: {},
						},
						skill: {
							name: '技能',
							dict: 'skill',
							show: true,
							data: {},
						},
						derive: {
							name: '衍生属性',
							dict: 'derive',
							show: true,
							data: {},
						},
						check: {
							name: '检定速查',
							dict: 'check',
							show: true,
							data: {},
						},
						attack: {
							name: '攻击预设',
							dict: 'attack',
							show: true,
							data: {},
						},
						defense: {
							name: '防御预设',
							dict: 'defense',
							show: true,
							data: {},
							remark: '',
							value: 0,
						},
						buff: {
							name: 'BUFF',
							dict: 'buff',
							show: true,
							data: {},
						},
						scale: {
							name: '计量槽',
							dict: 'scale',
							show: true,
							data: {},
						},
						data: {
							name: '▓▓',
							dict: 'data',
							show: true,
							data: {},
						},
					}),
					derive: JSON.stringify({
						name: '',
						old: '',
						dict: '',
						text: '',
						value: 0,
						_value: 0,
						buff: '',
					}),
					buff: JSON.stringify({
						name: '',
						old: '',
						dict: '',
						text: '',
						type: 'at',
						value: 0,
						_value: 0,
					}),
					defense: JSON.stringify({
						name: '',
						old: '',
						dict: '',
						text: '',
						value: 0,
						_value: 0,
						buff: '',
					}),
					check: JSON.stringify({
						name: '',
						old: '',
						dict: '',
						check: {
							text: '',
							value: 0,
							_value: 0,
							buff: '',
						},
						attach: {
							text: '',
							value: 0,
							_value: 0,
							buff: '',
						}
					}),
					scale: JSON.stringify({
						name: '',
						old: '',
						dict: '',
						text: '',
						value: 0,
						_value: 0,
						log: '',
						buff: '',
						now: '',
						hp: false,
						I: 0,
						B: 0,
						L: 0,
						A: 0,
					}),
					attack: JSON.stringify({
						name: '',
						old: '',
						dict: '',
						base: '',
						special: '',
						remark: '',
						hit: '',
						dice: 10,
						check: {
							text: '',
							value: 0,
							_value: 0,
							buff: '',
						},
						attach: {
							text: '',
							value: 0,
							_value: 0,
						},
						limit: {
							text: '',
							value: 0,
							_value: 0,
							buff: '',
						},
						weapon: {
							text: '',
							value: 0,
							_value: 0,
							buff: '',
						},
						speed: {
							text: '',
							value: 0,
							_value: 0,
							buff: '',
						},
						armor: {
							text: '',
							value: 0,
							_value: 0,
							buff: '',
						},
						magic: {
							text: '',
							value: 0,
							_value: 0,
							buff: '',
						},
						reach: {
							text: '',
							value: 0,
							_value: 0,
							buff: '',
						},
						range: {
							text: '',
							value: 0,
							_value: 0,
							buff: '',
						},
					}),
					title: JSON.stringify({
						name: '',
						dict: '',
						show: true,
						data: {},
						switch: false,
					}),
					text: JSON.stringify({
						name: '',
						dict: '',
						text: '',
					}),
					dict: {
						attach: '附加成功',
						limit: '伤害上限',
						weapon: '武器伤害',
						speed: '高速',
						armor: '破甲',
						magic: '破魔',
						reach: '射程',
						range: '范围',
					},
				}
				const monster = {
					select: {
						level: ['无支线', 'D', 'C', 'B', 'A', 'S', 'SS', 'SSS'],
						type: ['小怪', 'BOSS'],
						attack: ['肉搏', '白刃', '枪械', '弓箭', '神秘学', '枪械(炮)'],
						attr: [
							[4, 2, 1],
							[6, 4, 2],
							[11, 6, 4],
							[16, 11, 6],
							[21, 16, 8],
							[26, 21, 11],
							[36, 31, 21],
							[66, 51, 36],
						],
						skill: [
							[3, 2, 1],
							[5, 3, 1],
							[8, 4, 2],
							[10, 5, 3],
							[13, 8, 4],
							[15, 10, 5],
							[15, 13, 8],
						],
					},
					level: 0,
					type: 0,
					attack: 0,
					init: JSON.stringify({
						"data": [
							["名词速记", []],
							["专长", []]
						],
						"role": [
							["姓名", "怪物"],
							["概述", ""]
						],
						"attr": [
							["心智属性", [
								["智力", ""],
								["感知", ""],
								["决心", ""]
							]],
							["生理属性", [
								["力量", ""],
								["敏捷", ""],
								["耐力", ""]
							]],
							["互动属性", [
								["风度", ""],
								["操控", ""],
								["沉着", ""]
							]]
						],
						"skill": [
							["心智系技能", [
								["学识", "", ""],
								["电脑", "", ""],
								["手艺-子项A", "", ""],
								["调查", "", ""],
								["医学", "", ""],
								["神秘学", "", ""],
								["科学", "", ""]
							]],
							["生理系技能", [
								["运动", "", ""],
								["肉搏", "", ""],
								["驾驶", "", ""],
								["枪械", "", ""],
								["手上功夫", "", ""],
								["隐藏", "", ""],
								["求生", "", ""],
								["白刃", "", ""],
								["弓箭", "", ""]
							]],
							["互动系技能", [
								["动物沟通", "", ""],
								["感受", "", ""],
								["表达-子项A", "", ""],
								["胁迫", "", ""],
								["交际", "", ""],
								["掩饰", "", ""]
							]]
						],
						"derive": [
							["支线等级", ""],
							["武器伤害", ""],
							["高速", ""],
							["破甲", ""],
							["破魔", ""],
							["加骰", "10"],
							["攻击", ""],
							["防御", ""],
							["减伤", ""],
							["体积", "5"],
							["体积差值", "@体积(5)-标准(5)"],
							["体积补正", "@体积差值(0)/2"],
							["天生防御补正", "@天生防御数值(0)+@体积补正(0)"],
							["闪避防御补正", "@闪避防御数值(0)-@体积差值(0)/2"],
							["基础防御补正", "@基础防御数值(1)+@闪避防御补正(0)-@闪避防御(0)"],
							["近战攻击伤害上限", "@体积补正(0)"],
							["基础防御数值", "@敏捷(1)&@感知(1)"],
							["闪避防御数值", "@传奇敏捷(0)"],
							["天生防御数值", ""],
							["基础速度", "@体积(5)+@敏捷(1)+@力量(1)+@传奇敏捷(0)*3"],
							["陆行速度", "@基础速度(7)"],
							["飞行速度", ""],
							["先攻", "@敏捷(1)+@沉着(1)+@传奇沉着(0)"],
							["生命值上限", "@体积(5)+@耐力(1)+@传奇耐力(0)~"],
							["意志值", "@决心(1)+@沉着(1)+@传奇决心(0)+@传奇沉着(0)"],
						],
						"check": [
							["意志检定", [
								["DP", "@意志值(2)+@传奇决心(0)"],
								["附加成功", "@传奇决心(0)+@传奇沉着(0)"]
							]],
							["意志豁免", [
								["DP", "@意志值(2)+@传奇决心(0)"],
								["附加成功", "@传奇决心(0)+@传奇沉着(0)"]
							]],
							["反射豁免", [
								["DP", "@敏捷(1)+@运动(1)"],
								["附加成功", "@传奇敏捷(0)+@运动附加成功(0)"]
							]],
							["强韧豁免", [
								["DP", "@耐力(1)+@求生(1)"],
								["附加成功", "@传奇耐力(0)+@求生附加成功(0)"]
							]],
							["侦查检定", [
								["DP", "@感知(1)+@调查(1)"],
								["附加成功", "@传奇感知(0)+@调查附加成功(0)"]
							]],
							["力量检定", [
								["DP", "@力量(1)+@体积补正(0)"],
								["附加成功", "@传奇力量(0)"]
							]],
							["近战攻击命中检定", [
								["DP", "-@体积补正(0)"],
								["附加成功", ""]
							]]
						],
						"attack": [
							["肉搏攻击", [
								["DP", "@力量(1)+@肉搏(0)+@肉搏攻击武器伤害(0)+@近战攻击检定(0)"],
								["附加成功", "@传奇力量(0)+@肉搏附加成功(0)"],
								["伤害上限", "@力量(1)+@肉搏(0)+@肉搏攻击武器伤害(0)+@近战攻击伤害上限(0)"],
								["武器伤害", ""],
								["高速", ""],
								["破甲", ""],
								["破魔", ""],
								["射程", ""],
								["范围", ""],
								["加骰", "10"],
								["命中额外特效", ""],
								["武器基本属性", ""],
								["武器特殊属性", ""],
								["其他效果", ""]
							]],
							["白刃攻击", [
								["DP", "@力量(1)+@白刃(0)+@白刃攻击武器伤害(0)"],
								["附加成功", "@传奇力量(0)+@白刃附加成功(0)"],
								["伤害上限", "@力量(1)+@白刃(0)+@白刃攻击武器伤害(0)+@近战攻击伤害上限(0)"],
								["武器伤害", ""],
								["高速", ""],
								["破甲", ""],
								["破魔", ""],
								["射程", ""],
								["范围", ""],
								["加骰", "10"],
								["命中额外特效", ""],
								["武器基本属性", ""],
								["武器特殊属性", ""],
								["其他效果", ""]
							]],
							["枪械攻击", [
								["DP", "@敏捷(1)+@枪械(0)+@枪械攻击武器伤害(0)"],
								["附加成功", "@传奇敏捷(0)+@枪械附加成功(0)"],
								["伤害上限", "@枪械(0)+@枪械攻击武器伤害(0)*2"],
								["武器伤害", ""],
								["高速", "5"],
								["破甲", ""],
								["破魔", ""],
								["射程", ""],
								["范围", ""],
								["加骰", "10"],
								["命中额外特效", ""],
								["武器基本属性", ""],
								["武器特殊属性", ""],
								["其他效果", ""]
							]],
							["弓箭攻击", [
								["DP", "@敏捷(1)+@弓箭(0)+@弓箭攻击武器伤害(0)"],
								["附加成功", "@传奇敏捷(0)+@弓箭附加成功(0)"],
								["伤害上限", "@弓箭(0)+@弓箭攻击武器伤害(0)*2+力量要求(0)"],
								["武器伤害", ""],
								["高速", ""],
								["破甲", ""],
								["破魔", ""],
								["射程", ""],
								["范围", ""],
								["加骰", "10"],
								["命中额外特效", ""],
								["武器基本属性", ""],
								["武器特殊属性", ""],
								["其他效果", ""]
							]],
							["法术攻击", [
								["DP", "@智力(1)+@神秘学(0)+@法术攻击武器伤害(0)"],
								["附加成功", "@传奇智力(0)+@神秘学附加成功(0)"],
								["伤害上限", "@智力(1)+@神秘学(0)+@法术攻击武器伤害(0)"],
								["武器伤害", ""],
								["高速", ""],
								["破甲", ""],
								["破魔", ""],
								["射程", ""],
								["范围", ""],
								["加骰", "10"],
								["命中额外特效", ""],
								["武器基本属性", ""],
								["武器特殊属性", ""],
								["其他效果",
									"武器伤害即威力值一般为D级2点，DD级3点，C级4点，CC级5点，B级6点，BB级8点，A级10点，AA级13点，S级16点。"
								]
							]],
							["火炮攻击", [
								["DP", "@智力(1)+@神秘学(0)+@火炮攻击武器伤害(0)"],
								["附加成功", "@传奇智力(0)+@枪械附加成功(0)"],
								["伤害上限", "@枪械(0)+@火炮攻击武器伤害(0)*2"],
								["武器伤害", ""],
								["高速", ""],
								["破甲", ""],
								["破魔", ""],
								["射程", ""],
								["范围", ""],
								["加骰", "10"],
								["命中额外特效", ""],
								["武器基本属性", ""],
								["武器特殊属性", ""],
								["其他效果",
									"造成范围伤害，伤害值为武器伤害，攻击者进行判定时，需减去目标除了基础防御、闪避防御、洞察防御以及格挡防御以外的防御进行判定，判定结果作为被攻击者进行反射对抗判定时的减值。"
								]
							]]
						],
						"defense": [
							[
								["防御附加成功", "@传奇敏捷(0)+@传奇感知(0)"],
								["基础防御", "@基础防御补正(1)|0"],
								["闪避防御", "@闪避防御补正(0)|0"],
								["洞察防御", "@传奇感知(0)"],
								["天生防御", "@天生防御补正(0)|0"],
								["格挡防御", ""]
							],
							[
								["其他防御", ""]
							],
							["防御总览", []]
						],
						"buff": [
							["格挡", [
								["格挡防御", "@白刃(0)|@肉搏(0)"]
							]]
						],
						"scale": [
							["生命值", [
								["上限", "@生命值上限(6)"],
								["记录", ""]
							]]
						]
					}),
				}
				return {
					init,
					select,
					monster,
				}
			},
			components: {
				'div-input': {
					props: ['modelValue'],
					emits: ['update:modelValue'],
					computed: {
						list() {
							const text = this.modelValue ? this.modelValue.toString() : false
							return typeof text == 'string' ? text.split(/\n+/g) : ['']
						},
					},
					methods: {
						input() {
							this.$emit('update:modelValue', this.$refs.input.innerText.toString().trim())
						},
					},
					template: '<div class="div-input" ref="input" contenteditable="true" @blur="input" :key="modelValue"><p v-for="item, index in list" :key="index">{{item}}</p></div>',
				}
			},
			computed: {
				list() {
					let i
					const list = []
					for (i in this.data) {
						i != 'data' && list.push(this.data[i])
					}
					list.push(this.auto)
					for (i in this.data.data.data) {
						list.push(this.data.data.data[i])
					}
					list.push(this.help)
					return list
				},
				defense() {
					let i, t
					let text = ''
					let value = 0
					let attach = 0
					for (i in this.data.defense.data) {
						t = this.data.defense.data[i]
						if (t.name == '防御附加成功') {
							attach = t._value
						} else if (t._value) {
							value += t._value
							text += t.name + '(' + t._value + ')+'
						}
					}
					text = text.replace(/\+$/, '') + '=' + value
					attach && (text += ' 防御附加成功(' + attach + ')')
					this.updated = this.updated || this.data.defense.value != value
					this.data.defense.value = value
					return text
				}
			},
			data() {
				return {
					side: true,
					height: 'auto',
					console: false,
					updated: false,
					computing: 0,
					message: '',
					data: {},
					text: {},
					storage: '_unlimited_rule_role_card_',
					copy_text: '',
					help: {
						name: '使用说明',
						dict: 'help',
						show: true,
						data: {},
					},
					auto: {
						name: '自动破防',
						dict: 'auto',
						show: true,
						data: {},
						attack: {
							text: '',
							result: '',
							check: '',
							value: 0,
							dice: 10,
							attach: 0,
							speed: 0,
							armor: 0,
							magic: 0,
						},
						defense_text: '',
						defense_value: 0,
						defense: {
							speed: {
								name: '高速破除',
								text: '',
								value: 0,
							},
							armor: {
								name: '破甲破除',
								text: '',
								value: 0,
							},
							magic: {
								name: '破魔破除',
								text: '',
								value: 0,
							},
							other: {
								name: '不可破除',
								text: '',
								value: 0,
							},
						},
						type: {
							speed: ['格挡', '闪避', '基础'],
							armor: ['盾牌', '盔甲', '天生'],
							magic: ['士气', '亵渎', '神圣', '黑暗', '光明', '能量', '无名'],
						},
						result: {
							text: '',
							value: 0,
							speed: 0,
							armor: 0,
							magic: 0,
						}
					},
				}
			},
			created() {
				this.loadStorage() || this.createData(JSON.parse(this.init.init))
				this.computeUpdate()
			},
			methods: {
				createMonster() {
					let i, j, k
					const monster = JSON.parse(this.monster.init)
					const level = this.monster.level
					const type = this.monster.type
					const attr = this.monster.select.attr[level]
					const skill = this.monster.select.skill[level]
					const attack = this.monster.attack
					for (i in this.data.attr.data) {
						for (j in this.data.attr.data[i].data) {
							monster.attr[i][1][j][1] = attr[2]
						}
					}
					let a = []
					for (i in this.data.skill.data) {
						for (j in this.data.skill.data[i].data) {
							this.data.skill.data[i].data[j].name.match(/\-/) || a.push(i + '.' + j)
						}
					}
					for (k = 0; k < 5; k++) {
						i = Math.randomInt(0, a.length)
						i = a[i].split('.')
						a.splice(i, 1)
						j = i[1]
						i = i[0]
						monster.skill[i][1][j][1] = skill[2]
					}
					for (k = 0; k < 4; k++) {
						i = Math.randomInt(0, a.length)
						i = a[i].split('.')
						a.splice(i, 1)
						j = i[1]
						i = i[0]
						monster.skill[i][1][j][1] = skill[1]
					}
					monster.skill[1][1][0][1] = skill[0]
					monster.skill[1][1][6][1] = skill[0]
					monster.skill[0][1][3][1] || (monster.skill[0][1][3][1] = skill[2])
					if (attack <= 1) {
						monster.attr[1][1][0][1] = attr[0]
						monster.attr[1][1][2][1] = attr[0]
						monster.attr[1][1][1][1] = attr[1]
						monster.attr[0][1][1][1] = attr[1]
						monster.attr[2][1][2][1] = attr[1]
						if (attack >= 1) {
							monster.skill[1][1][7][1] = skill[0]
						} else {
							monster.skill[1][1][1][1] = skill[0]
						}
					} else if (1 < attack && attack <= 3) {
						monster.attr[1][1][1][1] = attr[0]
						monster.attr[0][1][1][1] = attr[0]
						monster.attr[1][1][0][1] = attr[1]
						monster.attr[1][1][2][1] = attr[1]
						monster.attr[2][1][2][1] = attr[1]
						if (attack >= 3) {
							monster.skill[1][1][8][1] = skill[0]
						} else {
							monster.skill[1][1][3][1] = skill[0]
						}
					} else if (attack == 4) {
						monster.attr[0][1][0][1] = attr[0]
						monster.attr[0][1][1][1] = attr[0]
						monster.attr[0][1][2][1] = attr[1]
						monster.attr[1][1][1][1] = attr[1]
						monster.attr[2][1][0][1] = attr[1]
						monster.skill[0][1][5][1] = skill[0]
					} else {
						monster.attr[0][1][0][1] = attr[0]
						monster.attr[1][1][1][1] = attr[0]
						monster.attr[0][1][1][1] = attr[1]
						monster.attr[1][1][0][1] = attr[1]
						monster.attr[1][1][2][1] = attr[1]
						monster.skill[1][1][3][1] = skill[0]
					}
					this.createData(monster)
				},
				scaleChange(name, forceUpdate) {
					const data = this.getData(name)
					data.log = data.log.trim()
					let i, s, v, m, log, t, type
					if (!data.text.startsWith('@生命值') && !data.name.startsWith('生命值')) {
						data.hp = false
						log = data.log.replace(/[^\d\+\-]/g, '')
						v = parseInt(eval(log)) || 0
						data.now = data._value + v
						if (forceUpdate) {
							this.forceUpdate()
						}
						return
					}
					data.hp = true
					const now = {
						I: 0,
						B: 0,
						L: 0,
						A: 0,
					}
					log = data.log.toUpperCase().replace(/[^\d\+\-LBA]/g, '')
					type = true
					while (log) {
						if (log[0] == '+') {
							type = true
							log = log.substr(1)
							continue
						} else
						if (log[0] == '-') {
							type = false
							log = log.substr(1)
							continue
						}
						log = log.replace(/^\D+/, '')
						m = log.match(/^(\d+)([LBA])?/)
						log = log.substr(m[0].length)
						v = parseInt(m[1])
						i = m[2] || 'L'
						if (type) {
							now[i] -= v
							if (now.A < 0) {
								now.L += now.A * 4
								now.A = 0
							}
							if (now.L < 0) {
								now.B += now.L
								now.L = 0
							}
							if (now.B < 0) {
								now.B = 0
							}
						} else {
							s = now.B + now.L + now.A
							if (s + v <= data._value) {
								now[i] += v
								continue
							}
							t = data._value - s
							now[i] += t
							v -= t
							t = Math.min(v, now.B)
							now.B -= t
							i == 'A' ? (now.A += t) : (now.L += t)
							v -= t
							if (v == 0) {
								continue
							}
							t = Math.min(v, now.L)
							now.L -= t
							now.A += t
							v -= t
							if (v == 0) {
								continue
							}
							now.A += v
						}
					}
					now.I = data._value - (now.B + now.L + now.A)
					data.now = ''
					for (i in now) {
						if (now[i]) {
							data.now += now[i] + i
						}
						data[i] = now[i]
					}
					data.now = data.now.replace('I', '完好')
					if (forceUpdate) {
						this.computeUpdate()
					}
				},
				autoChange(type) {
					let i, j, m, t, s
					const a = this.auto.attack
					const d = this.auto.defense
					if (type == 'attack') {
						a.check = ''
						t = a.text
						m = t.match(/\.ww(\d+)a?(\d+)?\+?(\d+)?/)
						if (m) {
							a.check += m[0]
							a.value = parseInt(m[1]) || 0
							a.dice = parseInt(m[2]) || 10
							a.attach = parseInt(m[3]) || 0
						}
						m = t.match(/高速\(?(\d+)\)?/)
						m && (a.speed = m[1])
						m = t.match(/破甲\(?(\d+)\)?/)
						m && (a.armor = m[1])
						m = t.match(/破魔\(?(\d+)\)?/)
						m && (a.magic = m[1])
					} else if (type == 'defense') {
						t = this.auto.defense_text.split('=')[0].replaceText().replace(/[\(\)\+防御加值]/g, '')
						for (i in this.auto.type) {
							d[i].text = ''
							for (j in this.auto.type[i]) {
								s = this.auto.type[i][j]
								m = t.match(new RegExp(s + '\\D*(\\d+)'))
								if (m) {
									t = t.substr(0, m.index) + t.substr(m.index + m[0].length)
									d[i].text += s + '(' + m[1] + ')'
								}
							}
						}
						d.other.text = t.replace(/(\d+)/g, '($1)')
					}
					a.result = [
						a.check,
						a.speed ? '高速(' + a.speed + ')' : '',
						a.armor ? '破甲(' + a.armor + ')' : '',
						a.magic ? '破魔(' + a.magic + ')' : '',
					].join(' ')
					for (i in d) {
						d[i].value = 0
						m = d[i].text.match(/(\d+)/g)
						if (m) {
							for (j in m) {
								d[i].value += parseInt(m[j])
							}
						}
					}
					const r = this.auto.result = {
						text: '',
						value: a.value,
						speed: a.speed,
						armor: a.armor,
						magic: a.magic,
					}
					this.auto.defense_value = 0
					for (i in d) {
						this.auto.defense_value += d[i].value
						if (i != 'other') {
							r[i] -= d[i].value
							r[i] < 0 && (r.value += r[i])
						} else {
							r.value -= d[i].value
						}
					}
					r.text = r.value > 0 ? [
						'.ww',
						r.value,
						a.dice < 10 ? 'a' + a.dice : '',
						a.attach > 0 ? '+' + a.attach : '',
					].join('') : r.value + 'dp'
				},
				selectBuff(e, name) {
					const data = this.getData(name)
					data.type = e.srcElement.selectedOptions[0].value
					data.type || (data.name = this.select[data.type])
					this.computeUpdate()
				},
				copyData(name) {
					let text = '.ww'
					const data = this.getData(name)
					if (typeof data._value != 'undefined') {
						text += data._value ? data.value : 0
					} else if (typeof data.check != 'undefined') {
						text += data.check._value ? data.check._value : 0
					}
					if (data.dice && data.dice < 10) {
						text += 'a' + data.dice
					}
					if (data.attach) {
						text += '+'
						text += typeof data.attach == 'object' ? data.attach._value : data.attach
					}
					if (data.limit && data.limit._value) {
						text += ' ' + this.init.dict.limit + '(' + data.limit._value + ')'
					}
					if (data.speed && data.speed._value) {
						text += ' ' + this.init.dict.speed + '(' + data.speed._value + ')'
					}
					if (data.armor && data.armor._value) {
						text += ' ' + this.init.dict.armor + '(' + data.armor._value + ')'
					}
					if (data.magic && data.magic._value) {
						text += ' ' + this.init.dict.magic + '(' + data.magic._value + ')'
					}
					if (data.special) {
						text += ' ' + data.special
					}
					if (data.hit) {
						text += ' ' + data.hit
					}
					this.copy(text, data.name)
				},
				copy(text, title) {
					if (text) {
						this.copy_text = text
					} else {
						return
					}
					setTimeout(() => {
						this.$refs.copy.select()
						document.execCommand('copy')
						text = '已复制' + (title ? '[' + title + ']' : '') + '： ' + this.copy_text
						this.alert(text)
					}, 100)
				},
				closeBuff() {
					for (let i in this.data.buff.data) {
						this.data.buff.data[i].switch = false
					}
					this.computeUpdate()
				},
				openAll(list) {
					list || (list = this.list)
					for (let i in list) {
						if (typeof list[i].show == 'boolean') {
							list[i].show = true
						}
						if (typeof list[i].data == 'object') {
							this.openAll(list[i].data)
						}
					}
					this.forceUpdate()
				},
				closeAll(list) {
					list || (list = this.list)
					for (let i in list) {
						if (typeof list[i].show == 'boolean') {
							list[i].show = false
						}
						if (typeof list[i].data == 'object') {
							this.closeAll(list[i].data)
						}
					}
					this.forceUpdate()
				},
				alert(message) {
					this.message = message
					setTimeout(() => {
						this.message = ''
					}, 2000)
				},
				setName(data, name, dict) {
					this.console && console.log('setName:' + name + ',' + dict)
					if (typeof data.value != 'undefined') {
						this.text[name] = dict ? dict + '.value' : dict
					} else if (typeof data.check == 'object') {
						this.text[name] = dict ? dict + '.check.value' : dict
					}
					let i, t
					const d = Object.assign({
						I: '完好',
						B: '冲击',
						L: '严重',
						A: '恶性',
					}, this.init.dict)
					for (let i in d) {
						t = d[i]
						if (typeof data[i] != 'undefined') {
							if (typeof data[i] == 'object') {
								this.text[name + t] = dict ? dict + '.' + i + '.value' : dict
							} else {
								this.text[name + t] = dict ? dict + '.' + i : dict
							}
						}
					}
				},
				updateName(name, forceUpdate) {
					this.console && console.log('updateName:' + name)
					const data = this.getData(name)
					data.name = data.name.replaceText()
					if (!data.name) {
						this.delData(name)
						return this.forceUpdate()
					}
					if (forceUpdate) {
						return this.forceUpdate()
					}
					if (this.text[data.name]) {
						if (this.text[data.name].startsWith(data.dict)) {
							return
						}
						this.alert(data.name + '已存在')
						data.name = data.old.toString()
						return this.forceUpdate()
					}
					this.setName(data, data.old, false)
					this.setName(data, data.name, data.dict)
					data.old = data.name.toString()
					this.forceUpdate()
				},
				addData(name, type) {
					const data = this.getData(name)
					let t = JSON.parse(this.init[type])
					let length = Object.keys(data.data).length
					while (data.data[length]) length++
					t.dict = data.dict + '.data.' + length
					t.name = t.dict
					t.old = t.name
					data.data[length] = t
					this.setName(data.data[length], t.name, t.dict)
					this.computeUpdate()
				},
				getStorageName(name) {
					return decodeURI(location.href).split('.')[0].split('/').pop() + this.storage + name
				},
				clearStorage() {
					localStorage.removeItem(this.getStorageName('data'))
					localStorage.removeItem(this.getStorageName('text'))
				},
				saveStorage() {
					localStorage.setItem(this.getStorageName('data'), JSON.stringify(this.data))
					localStorage.setItem(this.getStorageName('text'), JSON.stringify(this.text))
				},
				loadStorage() {
					let data = localStorage.getItem(this.getStorageName('data'))
					let text = localStorage.getItem(this.getStorageName('text'))
					if (!data || !text) {
						if (typeof script_data == 'object' && typeof script_text == 'object') {
							this.data = script_data
							this.text = script_text
							return true
						} else {
							return false
						}
					} else {
						try {
							data = JSON.parse(data)
							text = JSON.parse(text)
							this.data = data
							this.text = text
							return true
						} catch (e) {
							return false
						}
					}
				},
				forceUpdate() {
					this.$nextTick(() => {
						this.$forceUpdate()
					})
					this.height = 'auto'
					this.$refs.list && setTimeout(() => {
						this.height = this.$refs.list.offsetHeight + 100 + 'px'
					}, 50)
					this.saveStorage()
				},
				computeUpdate() {
					if (this.computing) {
						return
					}
					do {
						this.computing++
						this.updated = false
						this.computeAll()
					} while (this.updated && this.computing < 100)
					this.computing = 0
					this.updated = false
					this.forceUpdate()
				},
				computeAll() {
					this.computeAttr()
					this.computeSkill()
					this.computeDerive()
					this.computeDefense()
					this.computeCheck()
					this.computeAttack()
					this.computeScale()
					this.computeBuff()
				},
				computeBuff() {
					for (let i in this.data.buff.data) {
						for (let j in this.data.buff.data[i].data) {
							this.updateText(this.data.buff.data[i].data[j].dict)
						}
					}
				},
				computeAttr() {
					for (let i in this.data.attr.data) {
						for (let j in this.data.attr.data[i].data) {
							this.updateText(this.data.attr.data[i].data[j].dict, 'attr')
						}
					}
				},
				computeScale() {
					for (let i in this.data.scale.data) {
						this.updateText(this.data.scale.data[i].dict, 'scale')
					}
				},
				computeSkill() {
					for (let i in this.data.skill.data) {
						for (let j in this.data.skill.data[i].data) {
							this.updateText(this.data.skill.data[i].data[j].dict, 'skill')
						}
					}
				},
				computeDerive() {
					for (let i in this.data.derive.data) {
						this.updateText(this.data.derive.data[i].dict, 'derive')
					}
				},
				computeDefense() {
					const d = this.defense
					for (let i in this.data.defense.data) {
						this.updateText(this.data.defense.data[i].dict, 'defense')
					}
				},
				computeCheck() {
					for (let i in this.data.check.data) {
						this.updateText(this.data.check.data[i].dict + '.check', 'check')
						this.updateText(this.data.check.data[i].dict + '.attach', 'attach')
					}
				},
				computeAttack() {
					for (let i in this.data.attack.data) {
						this.updateText(this.data.attack.data[i].dict + '.check', 'attack')
						for (let j in this.init.dict) {
							this.updateText(this.data.attack.data[i].dict + '.' + j, j)
						}
					}
				},
				updateText(name, type) {
					this.console && console.log('updateText:' + name + ',' + type)
					type == 'scale' && this.scaleChange(name)
					const data = this.getData(name)
					let res = this.computeText(data.text)
					this.updated = this.updated || data.text != res.text
					data.text = res.text
					data.value = res.value
					res = this.getBuff(name, type)
					this.updated = this.updated || data.buff != res.buff
					data.buff = res.buff
					data._value = data.value + res._value
					data.value += res.value
					if (['attr', 'skill'].includes(type)) {
						return this.updateAttach(name, type)
					}
					this.computeUpdate()
				},
				getBuff(name, type) {
					const data = {
						buff: '',
						value: 0,
						_value: 0,
					}
					if (!type) {
						return data
					}
					let i, j, x, y
					const at = ['check', 'attack'].includes(type)
					for (i in this.data.buff.data) {
						x = this.data.buff.data[i]
						if (!x.switch) {
							continue
						}
						for (j in x.data) {
							y = x.data[j]
							if (y.type) {
								if (this.text[y.name] == name || this.text[y.name] == name + '.value') {
									data.buff += '+' + x.name + '(' + y.value + ')'
									data.value += y.value
									data._value += y.value
								}
							} else {
								if (at) {
									data.buff += '+' + x.name + '(' + y.value + ')'
									data._value += y.value
								}
							}

						}
					}
					return data
				},
				updateAttach(name, type) {
					this.console && console.log('updateAttach:' + name + ',' + type)
					const data = this.getData(name)
					let attach = 0
					if (type == 'skill') {
						data.value = Math.max(0, parseInt(data.value) || 0)
						while (data.value >= [5, 10, 11, 13, 15, 100][attach]) attach++
					} else {
						attach = parseInt((data.value - 1) / 5)
					}
					this.updated = this.updated || data.attach != attach
					data.attach = attach
					this.computeUpdate()
				},
				computeText(text) {
					this.console && console.log('computeText:' + text)
					text = text ? text.toString().replaceText() : ''
					let i, a, b, value = start = 0
					const data = []
					text.replace(/[\+\*\/\&\|]|(?<!\()-/g, (match, index) => {
						if (index > start && index < text.length) {
							data.push(this.getTextValueAdd(text.substr(start, index - start)))
							data.push({
								text: match
							})
						} else if (index === 0 && match == '-') {
							data.push({
								text: '',
								value: 0,
							})
							data.push({
								text: match
							})
						}
						start = index + 1
					})
					start < text.length && data.push(this.getTextValueAdd(text.substr(start)))
					while (data.length && data[data.length - 1].text.toString().match(/^[\+\-\*\/\&\|]$/g)) {
						data.pop()
					}
					text = ''
					for (i in data) {
						text += data[i].text
					}
					i = 0
					while (i < data.length) {
						if (['*', '/'].includes(data[i].text)) {
							a = data[i - 1]
							b = data[i + 1]
							data[i - 1].value = data[i].text == '*' ? a.value * b.value : parseInt(a.value / b.value)
							data.splice(i, 2)
							i = 0
						} else {
							i++
						}
					}
					i = 0
					while (i < data.length) {
						if (['|', '&'].includes(data[i].text)) {
							a = data[i - 1]
							b = data[i + 1]
							data[i - 1].value = data[i].text == '|' ? Math.max(a.value, b.value) : Math.min(a.value,
								b
								.value)
							data.splice(i, 2)
							i = 0
						} else {
							i++
						}
					}
					i = 0
					while (i < data.length) {
						if (['+', '-'].includes(data[i].text)) {
							a = data[i - 1]
							b = data[i + 1]
							data[i - 1].value = data[i].text == '+' ? a.value + b.value : a.value - b.value
							data.splice(i, 2)
							i = 0
						} else {
							i++
						}
					}
					return {
						text,
						value: data.length ? data[0].value : 0,
					}
				},
				getTextValueAdd(text) {
					if (text.match(/\~$/)) {
						const data = this.getTextValue(text.substr(0, text.length - 1))
						data.value = (data.value + 1) * data.value / 2
						data.text += '~'
						return data
					} else {
						return this.getTextValue(text)
					}
				},
				getTextValue(text) {
					this.console && console.log('getTextValue:' + text)
					if (text.match(/^\-?\d+$/)) {
						return {
							text: parseInt(text),
							value: parseInt(text),
						}
					}
					const match = text.match(/^(\@?)([^\(]+)(\(\-?\d+\))?$/)
					if (!match) {
						return {
							text: '',
							value: 0,
							_value: 0,
						}
					}
					text = match[1] + match[2]
					let value = parseInt(match[3] ? match[3].replace(/[\(\)]/g, '') : 0) || 0
					if (match[1]) {
						let v = this.getNameValue(match[2])
						typeof v == 'undefined' || (value = v)
					}
					text += '(' + value + ')'
					return {
						text,
						value
					}
				},
				getNameValue(name) {
					this.console && console.log('getNameValue:' + name)
					try {
						return this.getData(this.text[name])
					} catch (e) {
						this.console && console.log(e)
						return undefined
					}
				},
				getData(name) {
					this.console && console.log('getData:' + name)
					const arr = name.split('.')
					let i, data = this.data
					for (i in arr) data = data[arr[i]]
					return data
				},
				delData(name) {
					this.console && console.log('getData:' + name)
					const arr = name.split('.')
					let t, j, i = 0,
						d = {},
						data = this.data
					while (i + 2 < arr.length) {
						data = data[arr[i]]
						i++
					}
					for (j in data[arr[i]]) {
						if (j != arr[i + 1]) {
							d[j] = data[arr[i]][j]
						}
					}
					data[arr[i]] = d
				},
				getTxt() {
					return this.$refs.right.innerText
						.replace(/\n{2,}/g, "\n")
						.replace(/\s*([\:\：\=\(\)\（\）])\s*/g, '$1')
						.replace(/▓\s+/g, '▓')
						.replace(/([^\s▓])▓/g, "$1\n▓")
						.replace(/\n/g, "\r\n")
						.replace(/全检定\s+指定\s+▓/g, '▓')
				},
				saveHtml() {
					const text = [
						'<!DOCTYPE html>',
						'<html>',
						html[0],
						html[1],
						'<script>',
						'var script_data = ' + JSON.stringify(this.data),
						'var script_text = ' + JSON.stringify(this.text),
						'<\/script>',
						html[2],
						'<\/html>'
					].join("\n")
					this.saveFile(this.data.role.data[0].text + '.html', text)
				},
				saveData() {
					this.openAll()
					this.auto.show = false
					this.help.show = false
					this.closeBuff()
					this.saveText()
				},
				saveText() {
					setTimeout(() => {
						if (this.updated) {
							this.saveText()
						} else {
							this.saveFile(this.data.role.data[0].text + '.txt', this.getTxt())
						}
					}, 100)
				},
				saveFile(filename, text) {
					const urlObject = window.URL || window.webkitURL || window
					const export_blob = new Blob([text])
					const save_link = document.createElement("a")
					save_link.href = urlObject.createObjectURL(export_blob);
					save_link.download = filename
					if (document.createEvent) {
						const event = document.createEvent('MouseEvents')
						event.initEvent('click', true, true)
						save_link.dispatchEvent(event)
					} else {
						save_link.click()
					}
				},
				loadDataClick() {
					this.$refs.file.click()
				},
				loadData() {
					const file = this.$refs.file.files[0]
					const reader = new FileReader
					reader.onload = (e) => {
						this.loadText(e.target.result)
					}
					reader.readAsText(file)
				},
				loadText(text) {
					let i, j, k, t, a, b, c, d, x, y, z, u
					const data = {
						data: [],
					}
					const key = {}
					for (i in this.data) {
						key[this.data[i].name] = i
					}
					text = text.split('▓▓▓▓')
					for (i in text) {
						t = text[i].indexOf('▓')
						t = t == -1 ? text[i].length : t
						a = text[i].substr(0, t - 1)
						a = a ? a.replaceText().split(':')[0] : false
						if (!a) continue
						x = text[i].substr(t).split('▓▓')
						b = []
						for (j in x) {
							t = x[j].indexOf('▓')
							t = t == -1 ? x[j].length : t
							c = x[j].substr(0, t - 1)
							c = c ? c.replaceText().split(':')[0] : false
							if (!c) continue
							y = x[j].substr(t).split('▓')
							d = []
							for (k in y) {
								z = y[k].split(':')
								u = z[0] ? z[0].replaceText().split(':')[0] : false
								if (!u) continue
								z.shift()
								z = z.join().trim()
								if (key[a]) {
									if (key[a] == 'skill') {
										z = z.replaceText().split('(')
										d.push([u, z[0], z[1].replace(/\)/g, '')])
									} else {
										z = z.split('=')[0]
										d.push([u, z])
									}
								} else {
									d.push([u, z])
								}
							}
							b.push([c, d])
						}
						if (key[a]) {
							data[key[a]] = b
						} else {
							data.data.push([a, b])
						}
					}
					data.role = data.role[0][1]
					data.derive = data.derive[0][1]
					data.defense[0] = data.defense[0][1]
					data.defense[1] = data.defense[1][1]
					window.data = data
					window._data = JSON.stringify(data).replace(/\\/g, '\\\\')
					this.createData(data)
				},
				createData(arr) {
					let i, j, k, t, a, d, dict, name
					const data = this.data = JSON.parse(this.init.data)
					const text = this.text = {}
					for (i in arr.buff) {
						t = data.buff.data[i] = {
							name: arr.buff[i][0],
							dict: data.buff.dict + '.data.' + i,
							show: false,
							data: {},
							switch: false,
						}
						for (j in arr.buff[i][1]) {
							dict = t.dict + '.data.' + j
							name = arr.buff[i][1][j][0]
							t.data[j] = {
								name: name,
								dict: dict,
								text: arr.buff[i][1][j][1],
								value: 0,
								_value: 0,
								type: name == '全检定' ? '' : 'at',
							}
						}
					}
					for (i in arr.data) {
						t = data.data.data[i] = {
							name: arr.data[i][0],
							dict: data.data.dict + '.data.' + i,
							show: true,
							data: {},
						}
						a = arr.data[i][1]
						for (j in a) {
							dict = t.dict + '.data.' + j
							name = a[j][0]
							t.data[j] = {
								name: name,
								dict: dict,
								show: true,
								data: {},
							}
							d = a[j][1]
							for (k in d) {
								dict = t.data[j].dict + '.data.' + j
								name = d[k][0]
								t.data[j].data[k] = {
									name: name,
									dict: dict,
									text: d[k][1]
								}
							}
						}
					}
					for (i in arr.role) {
						t = data.role.data[i] = {
							name: arr.role[i][0],
							dict: data.role.dict + '.data.' + i,
							text: arr.role[i][1],
						}
					}
					for (i in arr.attr) {
						t = data.attr.data[i] = {
							name: arr.attr[i][0],
							dict: data.attr.dict + '.data.' + i,
							show: false,
							data: {},
						}
						for (j in arr.attr[i][1]) {
							dict = t.dict + '.data.' + j
							name = arr.attr[i][1][j][0]
							t.data[j] = {
								name: name,
								dict: dict,
								text: arr.attr[i][1][j][1],
								value: 0,
								_value: 0,
								attach: 0,
								buff: '',
							}
							this.setName(this.getData(dict), name, dict)
							text['传奇' + name] = dict + '.attach'
						}
					}
					for (i in arr.skill) {
						t = data.skill.data[i] = {
							name: arr.skill[i][0],
							dict: data.skill.dict + '.data.' + i,
							show: false,
							data: {},
						}
						for (j in arr.skill[i][1]) {
							k = arr.skill[i][1][j]
							dict = t.dict + '.data.' + j
							name = k[0]
							t.data[j] = {
								name: name,
								dict: dict,
								value: k[1],
								_value: k[1],
								text: k[1],
								major: k[2],
								attach: 0,
								buff: '',
							}
							this.setName(this.getData(dict), name, dict)
						}
					}
					for (i in arr.derive) {
						dict = data.derive.dict + '.data.' + i,
							name = arr.derive[i][0],
							t = data.derive.data[i] = {
								name: name,
								old: name,
								dict: dict,
								text: arr.derive[i][1],
								value: 0,
								_value: 0,
								buff: '',
							}
						t.old = t.name
						this.setName(this.getData(dict), name, dict)
					}
					for (i in arr.check) {
						k = arr.check[i][1]
						name = arr.check[i][0]
						dict = data.check.dict + '.data.' + i
						t = data.check.data[i] = {
							name: name,
							old: name,
							dict: dict,
							check: {
								text: k[0][1],
								value: 0,
								_value: 0,
								buff: '',
							},
							attach: {
								text: k[1][1],
								value: 0,
								_value: 0,
								buff: '',
							},
						}
						this.setName(this.getData(dict), name, dict)
					}
					for (i in arr.scale) {
						k = arr.scale[i][1]
						name = arr.scale[i][0]
						dict = data.scale.dict + '.data.' + i
						t = data.scale.data[i] = {
							name: name,
							old: name,
							dict: dict,
							text: k[0][1],
							value: 0,
							_value: 0,
							buff: '',
							log: k[1][1],
							now: '',
							hp: false,
							I: 0,
							B: 0,
							L: 0,
							A: 0,
						}
						this.setName(this.getData(dict), name, dict)
					}
					for (i in arr.defense[0]) {
						dict = data.defense.dict + '.data.' + i
						name = arr.defense[0][i][0]
						t = data.defense.data[i] = {
							name: name,
							old: name,
							dict: dict,
							text: arr.defense[0][i][1],
							value: 0,
							_value: 0,
							buff: '',
						}
						t.old = t.name
						this.setName(this.getData(dict), name, dict)
					}
					text['防御总览'] = data.defense.dict + '.value'
					data.defense.remark = arr.defense[1][0] ? arr.defense[1][0][1] : ''
					for (i in arr.attack) {
						k = arr.attack[i][1]
						name = arr.attack[i][0]
						dict = data.attack.dict + '.data.' + i
						t = data.attack.data[i] = {
							name: name,
							old: name,
							dict: dict,
							dice: k[9][1],
							hit: k[10][1],
							base: k[11][1],
							special: k[12][1],
							remark: k[13][1],
							check: {
								text: k[0][1],
								value: 0,
								_value: 0,
								buff: '',
							},
							attach: {
								text: k[1][1],
								value: 0,
								_value: 0,
								buff: '',
							},
							limit: {
								text: k[2][1],
								value: 0,
								_value: 0,
								buff: '',
							},
							weapon: {
								text: k[3][1],
								value: 0,
								_value: 0,
								buff: '',
							},
							speed: {
								text: k[4][1],
								value: 0,
								_value: 0,
								buff: '',
							},
							armor: {
								text: k[5][1],
								value: 0,
								_value: 0,
								buff: '',
							},
							magic: {
								text: k[6][1],
								value: 0,
								_value: 0,
								buff: '',
							},
							reach: {
								text: k[7][1],
								value: 0,
								_value: 0,
								buff: '',
							},
							range: {
								text: k[8][1],
								value: 0,
								_value: 0,
								buff: '',
							},
						}
						this.setName(this.getData(dict), name, dict)
					}
					this.computeUpdate()
				}
			},
		}).mount('#app')
	</script>
</html>